我在docs中找到了这个例子。我理解主回调(函数(错误,结果)......)是如何工作的,但回调是什么?传递给一个和两个函数的参数?来自哪里,他们做了什么?
TextMessagesAsAuthor
答案 0 :(得分:3)
callback
参数由异步基础结构传递给您的函数。它指向异步内部的一个函数(虽然这不是你需要知道的东西)。异步基础架构将它传递给您,并要求您在合适的时间调用它。
这是您回复异步库的方式,告诉它您的异步函数已完成其工作,以及它是成功完成还是错误。当您的函数完成它的工作时,您调用该函数并通知异步库现在已完成此过程的这一步(错误或成功)。
仅供参考,如果您熟悉node.js中的Express中间件,它与传递给中间件的next
参数非常相似。当您的中间件被调用时,传递给它的一个参数是next
回调。您的中间件可以完成其工作(可能是异步的),然后在完成后,它会通过调用传递给它的next()
回调告诉Express基础设施它已完成。
这是Express的一个类似的例子:
app.use(function (req, res, next) {
doSomethingAsync(function() {
next();
})
});
答案 1 :(得分:1)
它不是来自任何地方,它只是库的工作方式,回调用于将数据传递给下一个函数。
这是函数:
function _parallel(eachfn, tasks, callback) {
callback = callback || noop;
var results = isArrayLike(tasks) ? [] : {};
eachfn(tasks, function (task, key, callback) {
task(rest(function (err, args) {
if (args.length <= 1) {
args = args[0];
}
results[key] = args;
callback(err);
}));
}, function (err) {
callback(err, results);
});
}
https://github.com/caolan/async/blob/master/dist/async.js#L3471