2016-06-15 10 views

Antwort

1

Sie können die Promise API in Javascript verwenden. Im Wesentlichen Sie:

  1. Erstellen Sie Ihre lokale Variable (value unten)
  2. Erstellen Sie Ihre Promise
  3. einige lange Perform in Ihrem Versprechen laufende Aufgabe und resolve rufen, wenn Sie haben, was Sie
  4. wollen
  5. Geben Sie ein Objekt in den resolve Handler, den Sie beibehalten möchten (außerhalb des `Promise exponieren)
  6. Nutzen Sie den then(...) Handler auf dem Promise und extrahieren Sie das Objekt y ou aufgelöst früher

Beispiel:

var value = 'Foo'; 

var promise = new Promise(
    function(resolve, reject) { 
    setTimeout(function() { 
     resolve('Bar') 
    }, 1000); 
    }); 

promise.then(function(val) { 
    value = val; 
    console.log(value); // Bar 
}); 
+0

'console.log (Wert); // Bar' show output innerhalb des Versprechens, aber außerhalb davon zeigt 'Foo'? Wie verwende ich die Ausgabe innerhalb des Versprechens außerhalb davon? Vielen Dank. – sg552

+0

@ sg552 Sie nicht. Sie müssen sich auf das Versprechen verlassen, um es zu lösen. Der springende Punkt bei asynchronen Operationen ist, dass Sie warten, bis Sie die Antwort erhalten, und dann darauf reagieren. "Wert" oben wird auf das Ergebnis der Verheißungsauflösung gesetzt, sodass Sie das * außerhalb des Versprechens * verwenden können ... aber Sie müssen darauf warten, dass es zuerst aufgelöst wird. – mariocatch

Verwandte Themen