【发布时间】:2018-09-03 13:28:33
【问题描述】:
我是节点 js 的新手。我正在从 github(https://github.com/caolan/async/tree/master/lib) 上的 async 模块学习异步功能。我正在使用与parallel.js中编写的相同示例,即 var async = require('async');
async.parallel({
one : function(callback){
setTimeout(function(){
callback(null,1);
},200);
},
two : function(callback){
setTimeout(function(){
callback(null,2);
},100);
}
},function(err,results){
console.log(results);
});
但没有得到文档中解释的所需输出,即 {one:1, two:2}。我不明白为什么? 谁能让我清楚地理解它背后的真正概念?
【问题讨论】:
-
函数必须返回 Promise 才能使用异步模块
-
感谢您的回复,但官方文档没有提到要使用的任何承诺,如果您参考此链接:github.com/caolan/async/blob/master/lib/parallel.js 第一个示例完全按照所述运行,但第二个不是。
-
你收到了什么结果?
-
@Artur - 你错了。 async 模块根本不使用 Promise。这是一种较旧的技术,仅依赖于普通回调。更现代的方法根本不会使用 async 模块,而是使用带有
Promise.all()的 Promise。 -
{two:2,one:1} @Fadi Abo Msalam
标签: javascript node.js async.js