Wie zum extrahieren von Daten aus einem Versprechen

Habe ich ein Versprechen, dass die Daten liefert und ich wollen speichern Sie in Variablen. Ist diese unmöglich in JavaScript wegen der asynchronen Natur und brauche ich onResolve als callback?

Kann ich die irgendwie verwenden (z.B. wickeln Sie es mit async/await):

const { foo, bar } = Promise.then(result => result.data, errorHandler);
//rest of script

stattdessen?

Promise.then(result => {
   const { foo, bar } = result.data;
   //rest of script
 }, errorHandler);

Hinweis: Bluebird-Bibliothek anstelle der nativen Implementierung, und ich kann nicht ändern, von Versprechen, asnyc/erwarten oder Generatoren.

  • Es ist möglich, mit javascript. Sie können die Zuordnung der Daten erhalten Sie auf Erfolg Versprechen, um die variable, die Sie zuvor deklariert. Und eine variable haben, die den Wert von Versprechen. Sie können finden: developer.mozilla.org/en/docs/Web/JavaScript/Reference/...
  • async/ await kommen!
  • Dies ist möglich, kann aber verursachen Fehler, da JavaScript nicht warten, bis die Versprechen zu lösen. Auch ändern müssen const zu let, die Nebenwirkungen haben können.
  • Nur zur info, errorHandler nicht wirklich behandeln, ein Fehler hier, es wird unmittelbar nur
  • Diese syntax ist in Ordnung arbeiten mit der bluebird.js Umsetzung. Siehe bluebird-API-Referenz Es ist auch richtig laut Promises/A+ - standard (siehe Absatz 2.2)
  • Es sei denn errorHandler sich selbst gibt eine Funktion, all das wird hier passieren ist, dass der Rückgabewert von errorHandler verabschiedet werden, um die rejectedHandler parameter. Sie würde übergeben müssen errorHandler als Referenz an die Funktion: Promise.then(result => result.data, errorHandler);
  • Mögliche Duplikate von Wie man den Wert zuzugreifen, der an ein Versprechen?

InformationsquelleAutor Tobias Mühl | 2016-04-28
Schreibe einen Kommentar