这可能是一个简单的问题,但我正在写一个问题,因为我根本就没有得到它。参数有什么用?' null'在下面的async.some示例中?根据文档,该参数应该会出错,但是在回调中传递错误的重点是什么?
async.some(['file1','file2','file3'], function(filePath, callback) {
fs.access(filePath, function(err) {
callback(null, !err)
});
}, function(err, result) {
// if result is true then at least one of the files exists
});
我做了一些实验,因为我没有得到错误参数如何到达主回调错误参数。
callback('err', true) // main callback returns 'err' and undefined.
// second argument 'true' got lost?
callback(true) // main callback returns true and undefined.
// did not pass error argument but still works without the first argument?
答案 0 :(得分:1)
它可用于区分进程(您的某个任务)遇到错误时的错误以及何时成功。当一些人完成后,您可能想知道结果以及是否发生错误并单独处理这些情况。 就async-js而言,任何作为错误传递的假值都将被视为非错误;如果任何文件发生错误,则只会将错误传递给回调
在您提供的代码示例中
callback('err', true) // An error is passed so true will not be passed to final callback
callback(true) // true is the error, as an error is passed, only true (the error) and no result will be passed to the final callback.
基本上任何truthy作为回调的第一个参数传递的值都会导致立即错误