aka*_*ord 3 javascript asynchronous callback asynccallback
我在文档中找到了这个例子。我了解主要回调(函数(err,结果)...)的工作原理,但是传递给一个和两个函数的“回调”参数是什么?这些人来自哪里,他们做什么?
async.parallel({
one: function(callback){
setTimeout(function(){
callback(null, 1);
}, 200);
},
two: function(callback){
setTimeout(function(){
callback(null, 2);
}, 100);
}
},
function(err, results) {
// results is now equals to: {one: 1, two: 2}
});
Run Code Online (Sandbox Code Playgroud)
该callback参数由异步基础设施传递给您的函数。它指向 async 内部的一个函数(尽管这不是您需要知道的)。异步基础设施将其传递给您并要求您在正确的时间调用它。
这是您与异步库通信的方式,告诉它您的异步函数已完成其工作以及它是否成功完成或有错误。当您的函数完成其工作时,您调用该函数并通知异步库该过程的这一步现已完成(错误或成功)。
仅供参考,如果您熟悉 Node.js 中的 Express 中间件,它与next传递给中间件的参数非常相似。当您的中间件被调用时,传递给它的参数之一是next回调。你的中间件完成它的工作(可能是异步的),然后当它完成时,它通过调用传递next()给它的回调告诉 Express 基础设施它已经完成。
这是来自 Express 的一个有点相似的例子:
app.use(function (req, res, next) {
doSomethingAsync(function() {
next();
})
});
Run Code Online (Sandbox Code Playgroud)