NEWS
Return liefert undefined
-
Hi,
irgendwie stehe ich gerade mal wieder auf dem Schlauch. Folgende Funktion liefert mir über das Return "undefined". Setze ich aber vor das Return den Log-Befehl gehts.
Verstehe aber gerade nicht warum. Kann mir da mal jemand auf die Sprünge helfen?
function loadProjects(){ getState('viewswitch.0.existingProjects', (err, state) => { var projects = state.val.split(','); var text = '<option value="undefined" class="translate">Platzhalter</option>'; if(projects.length){ for (var d = 0; d < (projects.length -1); d++) { text +='<option value="'+ projects[d] +'" class="translate">'+ projects[d] +'</option>'; } //log(text) return text; } }); } log(loadProjects()); -
Hi,
irgendwie stehe ich gerade mal wieder auf dem Schlauch. Folgende Funktion liefert mir über das Return "undefined". Setze ich aber vor das Return den Log-Befehl gehts.
Verstehe aber gerade nicht warum. Kann mir da mal jemand auf die Sprünge helfen?
function loadProjects(){ getState('viewswitch.0.existingProjects', (err, state) => { var projects = state.val.split(','); var text = '<option value="undefined" class="translate">Platzhalter</option>'; if(projects.length){ for (var d = 0; d < (projects.length -1); d++) { text +='<option value="'+ projects[d] +'" class="translate">'+ projects[d] +'</option>'; } //log(text) return text; } }); } log(loadProjects());@Peoples Du rufst die asynchrone Version von getState auf. Was du in der Callback-Methode machst, wird "später" aufgerufen, da nützt dir ein
returngar nichts.Wenn du mit dem Resultat der asynchronen Methode etwas machen willst, bleibt dir nichts anderes übrig als ebenfalls ein Callback an deine Methode zu übergeben, das du am Schluss mit
textaufrufst.Oder: du verwendest async/await, dann wird dein Code viel einfacher.
-
@Peoples Du rufst die asynchrone Version von getState auf. Was du in der Callback-Methode machst, wird "später" aufgerufen, da nützt dir ein
returngar nichts.Wenn du mit dem Resultat der asynchronen Methode etwas machen willst, bleibt dir nichts anderes übrig als ebenfalls ein Callback an deine Methode zu übergeben, das du am Schluss mit
textaufrufst.Oder: du verwendest async/await, dann wird dein Code viel einfacher.