Comment arrêter l’exécution de la fonction suivante avec async-wait?

J’utilise cette bibliothèque pour chaîner des fonctions asynchrones dans mon application nodejs: https://github.com/yortus/asyncawait

var chain = async(function(){ var foo = await(bar()); var foo2 = await(bar2()); var foo3 = await(bar2()); } 

Donc, bar3 attend que bar2 se termine et bar2 attend que bar () se termine. C’est très bien. Mais que vais-je faire pour empêcher le blocage asynchrone d’exécuter davantage? Je veux dire quelque chose comme ça:

 var chain = async(function(){ var foo = await(bar()); if(!foo){return false;} // if bar returned false, quit the async block var foo2 = await(bar2()); var foo3 = await(bar2()); } 

Quelle est la meilleure approche pour gérer cela?

pour le moment je jette une exception à l’intérieur d’un bar et je gère l’exception de la manière suivante:

 chain().catch(function (err) { //handler, ie log message) 

Ça marche, mais ça n’a pas l’air correct

Je veux dire quelque chose comme ça…

asyncawait supporte exactement cette syntaxe. Il suffit de return de la fonction:

 var chain = async(function(){ var foo = await(bar()); if (!foo) return; var foo2 = await(bar2()); var foo3 = await(bar2()); });