Javascript-forum

Normale Version: Kein Rückgabewert aus Funktion
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi@all

Code:
    // Skill Auswahl
    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(data) {
                viewsData = data;
                viewName = data.view['title'];
                //console.log(viewName); // thats OK
            });
    }

Ich bekomme den Rückgabewert nicht übergeben initViews()

Thx@all
Hallo Prominenter,
<viewsName> sollte eigentlich eine globale Variable sein, da sie (in diesem Codeausschnitt) nicht lokal definiert ist. Ich hatte mal ein ähnliches Problem und da hat es geholfen sie trotzdem am Scriptanfang global zu deklarieren. Würde ich zumindest mal ausprobieren.
oder mal return probieren


return viewName;
Hi Prominenter,
einen Tipp könnte ich dir noch mitgeben. Verwende Template literals. Mit Template liberals kannst du besser und schneller Strings schreiben und es sieht sauberer aus.

Hier ein kleines Beispiel dazu von mir:
Code:
// Original
text = text + '<br><div class="btn" onclick="changeView(\'' + viewId + '\', \'' + viewName + '\')" style="display:block;">' + viewId + ' - ' + viewName + '</div>';
// Verbesserte Variante
text += `<br><div class="btn" onclick="changeView('${viewId}','${viewName}')" style="display: block;" ${viewId} - ${viewName}</div>`;

Gerne kannst du in zukunft die verbesserte Variante anwenden. Das macht das Coden leichter.

Viel Erfolg

rzscout