javascript - 具有间隔函数的 async.eachSeries

标签 javascript node.js asynchronous

基本上,我想让 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/

相关文章:

ruby - 如何避免重复添加?

javascript - 如何从异步调用返回响应?

javascript - 使用 jQuery remove() 添加项目。添加回相同的项目时,类更改将被保留

javascript - 您可以使用 fetch API 设置主机 header 吗

javascript - ExpressJS 和客户端中的 i18next 模块

javascript - Node.js setInterval() 在 25 天后停止执行

C++ 每秒运行一次异步函数

javascript - javascript 中全局数组未捕获的 ReferenceError

javascript - 在 React js 中点击回车键触发 onblur 事件

javascript - 无法使用 process.env 获取 Mac 中 ~/.profile 或 ~/.bash_profile 中的环境变量