美文网首页
node.js 之 async 的坑

node.js 之 async 的坑

作者: funpig | 来源:发表于2015-02-12 13:15 被阅读674次

最近在写自己的app,从前到后都是自己一个人做,因为后台nodejs的一个需求要同步顺序执行,所以用到了async模块,有坑所以写下经验。
Demo如下

var path = require('path');
var fs = require('fs');
var async = require('async');

var i = 0;
var callback = function(){console.log('...');};
var array = ['1', '2', '3', '4'];

//因为callback什么实际事情都不做,所以就只传入,不调用
async.eachSeries(array, function(obj, callback){
    console.log(obj);
});
console.log('****');

发现输出

xxx-MacBook-Pro:util xxx$ node test.js 
1
****
xxx-MacBook-Pro:util xxx$ 

怎么会只做一次呢?明明就是要做4次的呀!坑在这里

callback函数必须要调用

我没有看async的代码,仅仅猜想是async模块需要根据callback来确定函数的执行情况。

不管怎么样,加入callback的调用后,程序执行正常了!

var path = require('path');
var fs = require('fs');
var async = require('async');

var i = 0;
var callback = function(){console.log('...');};
var array = ['1', '2', '3', '4'];

async.eachSeries(array, function(obj, callback){
    console.log(obj);
        callback();//切记callback一点要调用
});
console.log('****');
xxx-MacBook-Pro:util xxx$ node test.js 
1
2
3
4
****
xxx-MacBook-Pro:util xxx$ 

另外的问题是callback里面‘...’为什么没打印出来呢?

相关文章

网友评论

      本文标题:node.js 之 async 的坑

      本文链接:https://www.haomeiwen.com/subject/qdfsxttx.html