NodeJS async异步问题
function a(){
var async = require('async');
async.parallel([
function(callback){
callback(null, 'one');
},
function(callback){
callback(null, 'two');
}
],
function(err, results){
return results;
});
}
function b(){
var data = a();
console.log(data);//他会先打印出undefined,再打印出[one,two]
}
这个是为什么啊?不应该等到a()方法执行完再输出吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
a 是一个异步方法,所以当代码执行到
console.log(data)
时, data 的值还是 undefined修改后的代码:
注意
一般 node 中的异步方法都是使用回调函数来传递返回值,这个回调函数的第一个参数一般是错误信息,没有的话传 null .
参考
1. https://github.com/caolan/async#waterfall
我不太相信它能打印出 [one,two]
我没看懂你想问什么……你想问
undefined
是怎么来的么?undefined
是console.log
这句话的返回值,["one", "two"]
是console.log
的控制台输出。