Quelle est la différence entre JavaScript promesses et async attendent?

J'ai été en utilisant ECMAScript 6 et ECMAScript 7 dispose déjà (grâce à Babel) dans mes applications mobiles et web.

La première étape était évidemment à ECMAScript 6 niveaux. J'ai appris beaucoup de async modèles, les promesses (qui sont vraiment prometteurs), des générateurs (je ne sais pas pourquoi le symbole*), etc.
En dehors de ces, des promesses adapté mon but assez bien. Et j'ai été de les utiliser dans mes applications beaucoup.

Voici un exemple de/pseudocode de la façon dont j'ai mis en place une base promesse-

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

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

Comme le temps a passé, je suis tombé sur ECMAScript 7 fonctions, et l'un d'eux étant ASYNC et AWAIT mots-clés/fonctions. En collaboration faire de grandes merveilles. J'ai commencé à remplacer certains de mes promesses avec async & await. Ils semblent ajouter une grande valeur pour le style de programmation.

Encore, voici un pseudo-code de la façon dont ma async, attendent fonction ressemble-

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

En gardant les erreurs de syntaxe (le cas échéant) de côté, tous les deux de faire exactement la même chose, c'est ce que je ressens. J'ai presque réussi à remplacer la plupart de mes promesses avec async,vous attend.

Pourquoi est asynchrone,attendent nécessaire lorsque promet de faire un travail similaire?

Ne async,attendent résoudre un problème plus grave? Ou était-ce juste une autre solution pour rappel l'enfer?

Comme je l'ai dit précédemment, je suis en mesure d'utiliser des promesses et asynchrone,vous attendent afin de résoudre le même problème. Est-il quelque chose de spécifique qui async attendent-ils résolus?

Remarques supplémentaires:

J'ai été en utilisant async,attend et promesses dans ma Réagir projets et Node.js les modules de manière intensive.
Réagir, en particulier, ont été un lève-tôt et adopté beaucoup de ECMAScript 6 et ECMAScript 7 caractéristiques.

  • Votre premier bloc de code s'affiche à utiliser une promesse pour un fonctionnement synchrone. Pourquoi voudriez-vous faire cela? Synchrone est, par nature, plus facile d'écrire du code pour il devrait donc y avoir peu de raisons pour envelopper un fonctionnement synchrone dans la promesse et le forcer à maintenant être asynchrone.
  • Oui, vous avez raison. Modifié le code. Merci.
  • Votre toujours essayer d'utiliser asynchrone outils synchrone fonctions - maintenant, dans les deux blocs de code. Pourquoi?
  • Ok. Ici, j'ai mon code gist.github.com/bozzmob/26d38b83dc37d1be37f5 . S'il vous plaît pouvez-vous me dire ce que je fais mal?
  • Où est une opération asynchrone dans votre code qui est à l'origine vous d'utiliser autre chose qu'un code synchrone?
  • S'il vous plaît pouvez-vous me donner le pseudo-code, afin que je puisse savoir ce que je fais de mal. Opération asynchrone sens?
  • Il semble que vous juste besoin de faire un tas de lecture pour comprendre ce async et await sont pour. Voici quelques articles: Le long de la route Async/Await en JavaScript et Simplifier Asynchrone de Codage avec ES7 Async Fonctions et Apprivoiser la asynchrones bête avec ES7.

InformationsquelleAutor bozzmob | 2015-12-21