我看到了一个看起来像这样的代码(Pro Node)。它使用async
库。
var async = require("async");
async.series([
function(callback) {
setTimeout(function() {
console.log("Task 1");
callback(null, 1);
}, 300); },
function(callback) {
setTimeout(function() {
console.log("Task 2");
callback(null, 2);
}, 200);
},
function(callback) {
setTimeout(function() {
console.log("Task 3");
callback(null, 3);
}, 100); }
], function(error, results) {
console.log(results);
});
当我运行它时,它会显示:
Task 1
Task 2
Task 3
[ 1, 2, 3 ]
一切都很好 - 但是,我不太明白回调行是什么:callback(null, 1)
,callback(null, 2)
和callback(null, 3)
。
如果我删除所有这些行,当我运行代码时它只返回:
Task 1
第一个和第二个参数做了什么以及为什么第二个参数1
,2
和3
?
答案 0 :(得分:1)
在异步库中,调用回调函数
async.series
运行数组中的下一个函数。第一个参数是任何错误数据。它是一个节点约定,任何错误都是first parameter回调函数。第二个参数是成功数据,并作为所有成功数据的数组传递给async.series
回调的第二个参数。
有关为什么节点更喜欢错误第一次回调,请参阅this answer。