gpt4 book ai didi

javascript - async.parallel 中的回调如何工作(它来自哪里?)

转载 作者:行者123 更新时间:2023-11-29 17:58:34 26 4
gpt4 key购买 nike

我在 docs 中找到了这个例子.我了解主要回调(函数(错误,结果)...)是如何工作的,但是传递给一个函数和两个函数的“回调”参数是什么?这些人来自哪里,他们做什么?

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}
});

最佳答案

callback 参数由异步基础设施传递给您的函数。它指向 async 内部的一个函数(尽管这不是您需要知道的)。异步基础架构将其传递给您并要求您在正确的时间调用它。

这就是您与异步库通信的方式,告诉它​​您的异步函数已完成其工作,以及它是成功完成还是出现错误。当您的函数完成它的工作时,您调用该函数并通知异步库该过程的这一步现在已经完成(有错误或成功)。


仅供引用,如果您熟悉 node.js 中的 Express 中间件,它与传递给中间件的 next 参数非常相似。当您的中间件被调用时,传递给它的参数之一是 next 回调。你的中间件完成它的工作(可能是异步的),然后当它完成时,它通过调用传递给它的 next() 回调告诉 Express 基础设施它已经完成。

这是 Express 中的一个有点类似的例子:

app.use(function (req, res, next) {
doSomethingAsync(function() {
next();
})
});

关于javascript - async.parallel 中的回调如何工作(它来自哪里?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37016234/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com