2012-10-07 63 views
1

我有这个非常简单的程序,输出应该是“foo”,然后是“baz”,但由于某些原因,“baz”不会打印在屏幕上。我犯了什么错误?Node.js async.queue不起作用

var async = require('async'); 

var q = async.queue(function (task, callback) { 
    console.log(task.message); 
}, 1); 

q.push({ message : "foo" }, function (err) {}); 
q.push({ message : "baz" }, function (err) {}); 

回答

4

你必须调用callback队列:

var q = async.queue(function (task, callback) { 
    console.log(task.message); 
    callback(); 
}, 1); 

这样,它通知队列,它完成了任务和队列可以跳转到另一个。

1

你刚才forgott的

callback() 

试试这个工作对我来说:

var async = require('async'); 

var q = async.queue(function (task, callback) { 
    console.log(task.message); 
    callback(); 
}, 1); 

q.push({ message : "foo" }, function (err) {}); 
q.push({ message : "baz" }, function (err) {});