Was ist der Unterschied zwischen JavaScript verspricht und async erwarten?

Ich habe mit ECMAScript 6 und ECMAScript 7 Funktionen bereits (Dank Babel) für meine Anwendungen - sowohl für mobile und web.

Der erste Schritt war offenbar zu ECMAScript 6 Ebenen. Ich lernte viele async-patterns, die verspricht (die sind wirklich viel versprechend), Generatoren (nicht sicher, warum das * - symbol), etc.
Aus dieser, verspricht geeignet, meinen Zweck ziemlich gut. Und ich habe Sie in meinen Anwendungen ziemlich viel.

Hier ist ein Beispiel/pseudocode, wie ich es umgesetzt haben, ein grundlegendes Versprechen-

var myPromise = new Promise(
    function (resolve,reject) {
      var x = MyDataStore(myObj);
      resolve(x);
    });

myPromise.then(
  function (x) {
    init(x);
});

Als die Zeit verging, ich kam in ECMAScript 7 Funktionen, und einer von Ihnen ASYNC und AWAIT Stichwörter/Funktionen. Diese in Verbindung große Wunder. Ich habe angefangen, zu ersetzen einige meiner Versprechen mit async & await. Sie scheinen fügen Sie großen Wert auf den Programmierstil.

Wieder, hier ist ein pseudocode, wie mein async, await-Funktion aussieht-

async function myAsyncFunction (myObj) {
    var x = new MyDataStore(myObj);
    return await x.init();
}
var returnVal = await myAsyncFunction(obj);

Halten die syntax-Fehler (wenn vorhanden) beiseite, beide von Ihnen tun genau das gleiche Ding ist, was ich fühle. Ich habe fast in der Lage gewesen, zu ersetzen, die meisten meiner Versprechen mit async,erwartet.

Warum ist async,await benötigt, wenn verspricht einem ähnlichen job?

Nicht async,await lösen Sie ein größeres problem? Oder war es nur eine andere Lösung, um callback-Hölle?

Wie ich bereits sagte, ich bin in der Lage zu verwenden verspricht und async,await, dieses problem zu lösen. Gibt es etwas bestimmtes, dass async-await gelöst?

Zusätzliche Hinweise:

Ich habe mit async,erwartet und verspricht in meine Projekte und Reagieren Node.js Module ausgiebig.
Reagieren vor allem war ein früher Vogel und nahm eine Menge von ECMAScript -  6 und ECMAScript 7 Funktionen.

  • Der erste code-block zu verwenden scheint ein Versprechen für eine synchrone operation. Warum würden Sie das tun? Synchron ist, von der Natur, einfacher, code zu schreiben, so sollte es wenig Grund zu wickeln eine synchrone operation in eine Verheißung und Kraft, die es nun async.
  • Ja, du hast Recht. Bearbeitet den code. Danke.
  • Ihr versucht immer noch, die Verwendung von asynchronen tools mit synchronen Funktionen - nun in beiden code-Blöcke. Warum?
  • Ok. Hier habe ich mein code gist.github.com/bozzmob/26d38b83dc37d1be37f5 . Bitte können Sie mir sagen, was mache ich falsch?
  • Wo ist eine asynchrone operation in deinem code, ist, dass Sie nichts anderes als normale synchronous code?
  • Bitte können Sie mir einen pseudo-code, so dass ich wissen kann, was ich falsch mache. Async-Betrieb Sinn?
  • Es klingt wie Sie brauchen nur zu tun eine Menge zu Lesen, zu verstehen, was async und await sind für. Hier sind einige Artikel: Der lange Weg zu Async/Await in JavaScript und Vereinfachung der Asynchronen Programmierung mit ES7 Async Functions und die Zähmung der asynchronen Tier mit ES7.

InformationsquelleAutor bozzmob | 2015-12-21
Schreibe einen Kommentar