首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Async.js跳出系列

Async.js跳出系列
EN

Stack Overflow用户
提问于 2015-01-29 16:57:25
回答 1查看 778关注 0票数 1

我正在使用Caolan的出色的Async.js。我正在执行一系列的功能。在第一个函数中,我有一个条件应该跳过本系列函数的所有其余部分,直接转到最终回调:

代码语言:javascript
复制
async.series([
    function one (next) {
        if(!condition) {
            // skip all the other functions and go to final callback
        }
        // do stuff
        return next();
    },
    function two (next) {
        // do stuff
        return next();
    },
    function three (next) {
        // do stuff
        return next();
    }
], function (err) {
    // final callback stuff
});

因此,如果函数中没有满足一个条件,则直接进行最后的回调。

异步系列文档状态

如果本系列中的任何函数将错误传递给回调函数,则不再运行函数,并立即使用错误值调用回调。

但是,在我看来,抛出一个错误并不是一种干净的方法。为了能够在最终回调中正确地处理“真实”错误,我必须引入一个假错误.还有别的干净的路吗?

EN

回答 1

Stack Overflow用户

发布于 2015-02-09 15:27:19

我现在是怎么解决这个问题的。我确实抛出了一个特定的错误,以跳过本系列的其余部分,将此特定错误排除在最终回调中的一般错误处理之外:

代码语言:javascript
复制
    async.series([
        function one (next) {
            if(!condition) {
                return next('condition_not_met');
            }
            return next();
        },
        function two (next) {
            // this isn't executed if condition isn't met in function one
            return next();
        }
    ], function (err) {
        if (err && err !== 'condition_not_met') {
            // general error handling
        }
        // do more stuff
    });

如果这是打算使用async.series的方式,或者是否有一种更优雅的方法来处理我的场景,我还是会感兴趣的。干杯。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28220279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档