kein Rückgabewert aus Funktion

Hi@all

HTML:
SkillArray = thisUserSkills.split(";");
    let text = 'Aus welchem Skill sollen Tickets zugewiesen werden?<br>';
    for (let i = 0; i < SkillArray.length; i++) {
        viewId    = SkillArray[i];
        initViews(viewId);
        console.log(viewName); // thats undefined
        text = text + '<br><div class="btn" onclick="changeView(\'' + viewId + '\', \'' + viewName + '\')" style="display:block;">' + viewId + ' - ' + viewName + '</div>';
    }
    document.getElementById('text01').innerHTML = text;

    // Init Views of View-ID an give Name of List
    function initViews(viewId) {
        let requestView = { type: 'GET', url: '/api/v2/views/' + viewId }
        client.request(requestView).then(function(viewsdata) {
            viewsData = viewsdata;
            viewName = viewsdata.view['title'];
            //console.log(viewName); // thats OK
        }); 
    }

Ich bekomme keinen Rückgabewert aus der Funktion initViews() , kann mal wer drüber schauen bitte.

THX@all
 
Zuletzt bearbeitet von einem Moderator:
Hi

Die Variablen und Aufrufe sind alle ok.
Ja, wird im Browser aufgerufen - client.request - ist zuvor definiert.
Innerhalb der Funktion klappt ja auch alles, ich bekomme den Wert nur nicht zurück.
den benötige ich aber um ihn im weiteren Verlauf nutzen zu können.

Thx@all
 
Was genau meinst du denn mit "bekomme nicht zurück" und welcher Wert?
Wie kann ich das bei mir testen? Brauche ein lauffähiges Beispiel, das den Fehler zeigt.
 
Hi

nun ja ne lauffähiges Beispielkann ich dir leider nicht anbieten (betriebesintern).

aber an sich erzeugt die funktion ja einen korrekten wert:
Code:
viewName = viewsdata.view['title'];
            //console.log(viewName); // thats OK

nur gibt sie ihn nach Aufruf der funktion nicht zurück:
Code:
initViews(viewId);
        console.log(viewName); // thats undefined

d.h. ich kann den Wert der Variable viewName nicht weiter verarbeiten, da sie undefined ist

Die variable selbst ist im script Header definiert.

Vielleicht kannst du hier:
Code:
let requestView = { type: 'GET', url: '/api/v2/views/' + viewId }
        client.request(requestView).then(function(viewsdata) {
eine eigene Abfrage einfügen.

Thx
 
Hi@all

Problem mittlerweile gelöst:

Code:
const result = await initViews(viewID,i)

Code:
async function initViews(viewID, num){
    let requestViews = { type: 'GET', url: '/api/v2/views/' + viewID }
    await  client.request(requestViews).then(data =>{
        //Object.entries(data).forEach(([key, value]) => { console.log(key, value) });
        viewName[num] = data.view.title; // Titel der Liste
    });
    const result = await listTickets(viewID,num);
};

Thx@all
 
Zurück
Oben