你如何处理asyncjs中的错误?

时间:2015-04-12 20:38:13

标签: node.js asynchronous

在文档中,我无法找到处理异步系列方法错误的方法。 我怎样才能正确学习异步js,通常github wiki在有用性方面与那些没有关联的人的平均值低于平均水平。

这是我的代码:

function async1(cb,err) {
    setTimeout(function () {
        console.log(1);
        cb();
    }, 1000);
}

function async2(cb,err) {
    setTimeout(function () {
        // console.log(2);
        throw new Error;
        cb();
    }, 1000);
}

function async3(cb,err) {
    setTimeout(function () {
        console.log(3);
        cb();
    }, 1000);
}

async.series([
    async1,
    async2,
    async3
], function  (err) {
    console.log(err);
});

它只是终止并抛出错误。

我的问题很少......

我是否正确处理错误,显然不正确,所以出了什么问题?

要使Async工作,串联使用的函数是否必须将第一个参数作为回调?

如果是,那么这是否意味着您无法将其与其他库一起使用。因为他们可能没有回调作为第一个参数。

1 个答案:

答案 0 :(得分:0)

两件事:

第一个函数只接受cb参数no err参数,所以它应该像function async1(cb){.而不是function(cb,err){.和......

抛出错误你这样做

cb(new Error) //as told in comments above.

并且不会抛出新错误。