Node.js 迭代请求的 CSV 文件,但在继续迭代之前等待响应

标签 node.js csv async.js

我有一些类似这样的代码(针对此讨论进行了一些简化)

var inputFile='inputfile.csv';
var parser = parse({delimiter: ','}, function (err, data) {
    async.eachSeries(data, function (line, callback) {
            SERVER.Request(line[0], line[1]);
            SERVER.on("RequestResponse", function(response) {
                    console.log(response);
            });
            callback();
    });
});

SERVER.start()

SERVER.on("ready", function() {
    fs.createReadStream(inputFile).pipe(parser);
});

我想做的是通过命令行 Node 程序运行 CSV 文件,该程序将迭代每一行,然后向服务器发出请求,该服务器以事件 RequestResponse 进行响应,然后我记录响应。 RequestResponse 需要一秒钟的时间,而我现在设置代码的方式只是飞过 CSV 文件,我得到每次迭代的输出,但它主要是我期望的第一次迭代的输出,还有一些第二次迭代的输出。我需要知道如何让迭代等待,直到出现 RequestResponse 事件,然后再继续下一次迭代。这可能吗?

我的这段代码很大程度上是基于 NodeJs reading csv file

但是我对 Node.js 和 async.foreach 有点迷失。任何帮助将不胜感激

最佳答案

我建议你咬紧牙关,花点时间学习 Promise 和 async/await。然后您可以使用常规的 for 循环并等待网络响应 promise 。

关于Node.js 迭代请求的 CSV 文件,但在继续迭代之前等待响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41477307/

相关文章:

javascript - Node.js 类作为模块

node.js - TypeError : object is not a function node. js 我不能,似乎不知道我做错了什么

python - 在 Python 中从 csv 中读取原始行和字典

javascript - 循环遍历数组并根据先前查询的结果对数组中的每个条目执行 My SQL 查询

javascript - Node.js 异步模块的 forEachOf 方法中未调用可选回调

node.js - 为什么我的数据库不填充 AngularJS、Angular-UI-Router 和 Loopback API?

node.js - 如何在没有 _id 引用的情况下获取 GraphqQL 列表中模型的填充值?

python - 如何使用 Pandas 将新行附加到 csv 文件?

python - 如何删除 CSV 文件中某个值大于另一个值的所有行?

node.js - 连续迭代 mongodb 游标(在移动到下一个文档之前等待回调)