asynchronousNPM模块不执行数组中的每个项目的setTimeout

我正在使用asynchronousNPM模块并编写了以下程序:

var async = require('async'); var arr = [1,2,3,4]; async.each(arr, function (item) { setTimeout(function () { console.log('item: ', item); }, 1000); }, function (error) { console.log('error', error); }); 

我期望控制台日志每1秒后显示,但它会在1秒后立即显示所有日志。

我该如何解决?

使用eachSeries而不是each传递一个callback函数:

 var async = require('async'); var arr = [1,2,3,4]; async.eachSeries(arr, function (item, callback) { setTimeout(function () { console.log('item: ', item); callback(); }, 1000); }, function (error) { console.log('error', error); }); 

eachSeries是一样的,但一次只能运行一个asynchronous操作。