Appel async/await fonctions en parallèle

Comme je le comprends, dans l'ES7/ES2016 mettre plusieurs await's dans le code du travail similaire à chaînage .then() avec des promesses, ce qui signifie qu'elles s'exécutent l'une après l'autre, plutôt que dans parallerl. Ainsi, par exemple, nous avons ce code:

await someCall();
await anotherCall();

Dois-je comprends bien que anotherCall() sera appelée que lorsque someCall() est terminé? Quelle est la façon la plus élégante de les appeler en parallèle?

Je veux l'utiliser dans un Nœud, alors peut-être il y a une solution avec async bibliothèque?

EDIT: je ne suis pas satisfait de la solution apportée à cette question: Ralentissement en raison de la non-parallèles en attente de promesses dans les générateurs asynchrones, car il utilise des générateurs et je veux parler d'un usage plus général cas.

  • Javascript ne s'exécute pas en parallèle. Vous devez commencer un nouveau contexte comme un travailleur pour le faire,
  • Alors, où voulez-vous l'utiliser, async/await ne sera pas inclus dans l'ES7, soit, mais est actuellement pris en charge dans Babel, c'est que le seul endroit où vous avez l'intention d'utiliser cette
  • C'est incorrect, le Javascript ne s'exécute en parallèle dans son contexte propre.
  • il ne, au moins, la manière dont les OP, lorsque deux opérations asynchrones sont en cours d'exécution simultanément, mais pas dans ce cas, ce que je voulais écrire est qu'ils fonctionnent en série, la première await attendre la première fonction à remplir entièrement avant l'exécution de la deuxième.
  • c'est pourquoi, quelque chose au plus profond de mon inconscient, dit - il ne peut pas être vrai.
  • Peut-être que je suis confus, mais de les exécuter en parallèle, pourquoi utiliser await, si elles le retour des promesses, pourquoi ne pas simplement utiliser un seul Promise.all avec un then gestionnaire -> Promise.all([someCall(), anotherCall()]).then(function(values) {...
  • Non, je suis désolé mais vous vous trompez. Si l'on pouvait vous seriez en mesure de fournir un exemple de la façon dont javascript serait poignée écrit à la même variable en même temps. Javascript n'est pas conçu pour s'exécuter en parallèle à cause de cette raison. Vous ne pouvez pas verrouiller les variables javascript.
  • il est mono-thread, mais cette limitation ne s'applique pas aux méthodes asynchrones, ils peut exécuter en même temps, et renvoyer la réponse quand elles sont faites, c'est à dire ce que l'OP veut dire par "parallèle".
  • Qui n'est pas parallèle, async objets d'exécuter du code natif pas de javascript ni tout asynchrone en fonction appelée jusqu'à l'exécution en cours est terminée. Tout ce qu'ils peuvent faire est de placer des appels sur la pile d'appel pour attendre l'exécution séquentielle.. Il est trompeur de décrire asynchrone en javascript et des objets en parallèle. L'OP demander si les deux méthodes peuvent être appelées en parallèle plutôt que de façon séquentielle, Ce n'est pas possible dans un seul contexte javascript, Une fonction doit être exécuté avant les autres.
  • Je pense qu'il est assez clair que les OP se demander, à l'aide de la async/await motif que les fonctions exécutées en série, même si elles sont asynchrones, de sorte que la première serait complètement terminé avant que la seconde est appelée etc. L'OP se demande comment appeler la fonction en parallèle, et comme ils sont clairement asynchrone, l'objectif est de les exécuter simultanément, c'est à dire en parallèle, par exemple faire deux requêtes ajax simultanément, ce qui n'est pas un problème du tout en javascript, comme la plupart des méthodes asynchrones, comme vous l'avez remarqué, il s'exécute en code natif, et utilise plusieurs threads.
  • Comment sur "exécuter deux tâches asynchrones simultanément" au lieu de "appeler les fonctions en parallèle"?
  • Nous ne sommes pas en discussion sur async tâches, mais JS fonctions. Pour exécuter la fonction deux en "parallèle" le contexte initial doit frayer un ChildProcess ou un Worker via Cluster, Dans chaque cas, un nouveau contexte et JS moteur (V8) sont instanciés. Selon la fonction, ce ne peut pas être de tout avantage. Async tâches ne peuvent passer des appels sur la pile des appels (AKA eventQueue), ils ne peuvent pas appeler JS directement. Toute exécution dans le contexte actuel va bloquer ces appels. C'est le JS fonctionne de la question est inquiète, et nous devons faire attention à ne pas utiliser trompeuse de la terminologie.
  • Une promesse de retour asynchrone fonction est toujours liée à un certain type de tâche pour moi, et c'est ce que l'OP se pose au sujet de. Bien sûr, sa terminologie peut ne pas être précis à 100%, mais nous comprenons tous ce qu'il veut faire, et cela devrait suffire.
  • ce n'est pas un doublon de la question — c'est précisément à propos de async/await syntaxe et natif Promises. La question est liée au sujet de la bluebird bibliothèque avec des générateurs & le rendement. Conceptuellement similaire peut-être, mais pas dans la mise en œuvre.
  • C'est conceptuellement exactement la même. La syntaxe n'a pas vraiment d'importance.
  • Les rappels sont également de faire la même chose que des promesses et async/await, c'est juste la syntaxe qui est différent. Je ne veux pas utiliser ni les rappels, ni de générateurs, cependant. La question est plus précisément sur async/await syntaxe.
  • La syntaxe très important. Pour une personne qui n'a jamais utilisé des générateurs ou bluebird liés question est complètement inutile.