我在使用node.js的async.parallel函数时遇到了问题,以下代码是正常工作的:
var data = {};
data.task_1= function(callback) {
var res_1 = "hello 1";
callback(null, res_1);
}
data.task_2 = function(callback) {
var res_2 = "hello 2";
callback(null, res_2);
}
async.parallel(data, function(err, results) {
if (err){
console.log(err);
}
console.log(results);
});
结果为:
结果是:{ task_1: '你好 1', task_2: '你好 2' }
但是,如果我尝试使用从数据库调用数据的函数来完成任务,则会出现以下错误: TypeError: 回调不是一个函数,结果为 { task_2: '你好 2', task_1: undefined }
我在日志中看到,在记录json文件之前已检索到数据。
这是我的代码:
var data = {};
data.task_1 = async function(callback) {
var res_1 = await getData("xyz");
console.log(res_1);
callback(null, res_1);
}
data.task_2 = function(callback) {
var res_2 = "hello 2";
callback(null, res_2);
}
async.parallel(data, function(err, results) {
if (err){
console.log(err);
}
console.log(results);
});
我错过了什么?感谢任何帮助!
await
这个术语来表述的。 - Aluan Haddadasync
,它将返回一个Promise
对象,但其值为undefined
。它仍然可以接受回调函数,并且需要显式地返回一个值,以便产生一个除了undefined
之外的任何其他值的Promise
对象。 - Aluan Haddad