このライブラリを使用して、nodejs アプリで非同期関数をチェーンしています: https://github.com/yortus/asyncawait
var chain = async(function(){
var foo = await(bar());
var foo2 = await(bar2());
var foo3 = await(bar2());
}
したがって、bar3 は bar2 が完了するのを待ち、bar2 は bar() が完了するのを待ちます。それはいいです。しかし、非同期ブロックがそれ以上実行されないようにするにはどうすればよいでしょうか? 私は次のようなことを意味します:
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());
}
これを処理するための最良のアプローチは何ですか?
現時点では、バー内で例外をスローし、例外を次のように処理します。
chain().catch(function (err) { //handler, ie log message)
動作していますが、正しく見えません