javascript - 如何使用 async-await 停止执行下一个函数?

标签 javascript node.js async-await ecmascript-2016

我正在使用这个库来链接我的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/

相关文章:

javascript - 在 Sequelizejs 中使用不同的 mysql 用户

c# - 如何防止我的异步方法阻塞 UI?

javascript - 等待 Promises.all 语法错误

c# - 如何在没有基于任务的代理的情况下处理 Windows Phone 8 中的服务引用

javascript - 如何在 Expressjs 或 Nodejs 中使用常规 Javascript 变量

javascript - 尝试在选择输入时隐藏某些内容

javascript - 创建外部 .js

javascript - 使用 jquery clone 语句复制一个 div 标签,当使用新复制的 div 时,js 做错了

javascript - Nodejs : Issue with async and forEach - Need to wait the async to resolve

node.js - 将样式/类添加到 react-datepicker