你如何处理 asyncjs 中的错误?
How do you handle error in asyncjs?
在文档中我找不到处理异步系列方法中错误的方法。
我怎样才能正确学习异步 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 正常工作,系列中使用的函数是否必须具有第一个参数作为回调?
如果是,是否意味着您不能将它与其他库一起使用。因为他们可能没有回调作为第一个参数。
两件事:
第一个函数只接受 cb 参数没有错误参数所以它真的应该像 function async1(cb){.
而不是 function(cb,err){.
和 ...
抛出错误你这样做
cb(new Error) //as told in comments above.
并且不会抛出新的错误。
在文档中我找不到处理异步系列方法中错误的方法。 我怎样才能正确学习异步 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 正常工作,系列中使用的函数是否必须具有第一个参数作为回调?
如果是,是否意味着您不能将它与其他库一起使用。因为他们可能没有回调作为第一个参数。
两件事:
第一个函数只接受 cb 参数没有错误参数所以它真的应该像 function async1(cb){.
而不是 function(cb,err){.
和 ...
抛出错误你这样做
cb(new Error) //as told in comments above.
并且不会抛出新的错误。