基本上,我想让 async.eachSeries 在执行另一个操作之前以 5 秒的间隔运行......
我有 2 个函数...第一个函数读取文本文件并将每行值存储在数组中。我的数组将包含大约 20 000 个项目。它还调用第二个函数,并运行 async.eachSeries。第二个函数采用数组 (20 000) 并将每个数组分成更小的数组... (5000)。
下面是我的第一个功能:
var LineReader = reader.createInterface({
input: fileReader.createReadStream('lines.txt')
});
LineReader.on('line', function (line) {
var NewNumber = line.toString();
number_list.push(NewNumber);
});
LineReader.on('close', function(){
var chunkData = chunk(5000, number_list);
async.eachSeries(chunkData, function(chunk, callback) {
console.log(chunk.length);
callback(null);
})
});
第二个函数
function chunk(chunk_size, array) {
return array.reduce(function(previous, current) {
var chunk;
if (previous.length === 0 ||
previous[previous.length - 1].length === chunk_size) {
chunk = [];
previous.push(chunk);
} else {
chunk = previous[previous.length - 1];
}
chunk.push(current);
return previous;
}, []);
}
最佳答案
这样可以解决问题吗?
LineReader.on('close', function(){
var chunkData = chunk(5000, number_list);
async.eachSeries(chunkData, function(chunk, callback) {
console.log(chunk.length);
setTimeout(function() {
callback(null);
}, 5000);
})
});
关于javascript - 具有间隔函数的 async.eachSeries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44003920/