理解回调错误参数所需的async.js解释

时间:2016-07-19 14:32:59

标签: javascript async.js

这可能是一个简单的问题,但我正在写一个问题,因为我根本就没有得到它。参数有什么用?' 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?

1 个答案:

答案 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作为回调的第一个参数传递的值都会导致立即错误