2017-09-28 2 views
1

vielleicht ist die ziemlich dumme Frage, aber was ist der Weg, hier zu gehen? Ich möchte eine Funktion erstellen, die von anderen Funktionen zu erfüllten Versprechen zurückkehrt?Holen Sie sich ein erfülltes Versprechen aus der Funktion

getStorageData(){ 
    var result = [] 
    this.storage.get('ipaddress').then(ip => { 
     result[0] = ip 
     this.storage.get('timestamp').then(timestamp => { 
      result[1] = timestamp 
      console.log(result) 
    })}) 
    return result 
} 

die Konsolenausgabe ist gut, aber der zurückgegebene Wert meiner definierte Funktion ist eine leere Arrays. Wie bekomme ich die Ausgabe der Konsole als Rückgabewert meiner Funktion?

Danke!

Antwort

0

Dies ist eine asyncrounous Funktion:

this.storage.get('timestamp').then(timestamp => { 
    result[1] = timestamp 
    console.log(result) 
} 

Ihr Skript braucht einige Zeit, um console.log(result) zu bekommen. Daher ist das Ergebnis nicht an der Stelle definiert, an die Sie es zurückgeben möchten.

Man könnte es zurückgeben, die in der Funktionskörper der .then() Funktion wie folgt aus:

this.storage.get('timestamp').then(timestamp => { 
    result[1] = timestamp; 
    console.log(result); 
    return result; 
} 

Hinweis: die ; am Ende eines Befehls nicht vergessen.

Verwandte Themen