我正在使用这个库来链接我的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() 完成。没关系。但是我该怎么做才能阻止异步 block 进一步执行呢?我的意思是这样的:
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());
}
处理这个问题的最佳方法是什么?
目前我在 bar 内抛出异常并以以下方式处理异常:
chain().catch(function (err) { //handler, ie log message)
它可以工作,但看起来不正确
最佳答案
I mean something like this …
asyncawait完全支持此语法。只需从函数中返回
即可:
var chain = async(function(){
var foo = await(bar());
if (!foo) return;
var foo2 = await(bar2());
var foo3 = await(bar2());
});
关于javascript - 如何使用 async-await 停止执行下一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28835780/