Javascript 如何处理异步循环函数中的wait调用-nodejs

Javascript 如何处理异步循环函数中的wait调用-nodejs,javascript,node.js,asynchronous,fs,Javascript,Node.js,Asynchronous,Fs,我正在使用CSV解析器npm模块读取CSV,必须对从CSV获取的数据(每行)执行一些操作 假设我的csv有两行,我的输出如下 before calling in getimage before calling in getimage after calling after calling 但当我这么做的时候,所有的呼叫都在同一时间发生,尽管我过去一直在等待。如果CSV中有10行,那么调用该函数的所有10行将同时发生。但我希望它一个接一个地发生。只有当第一行的操作完成时,我才希望操作第二行 我的

我正在使用CSV解析器npm模块读取CSV,必须对从CSV获取的数据(每行)执行一些操作

假设我的csv有两行,我的输出如下

before calling
in getimage
before calling
in getimage
after calling
after calling
但当我这么做的时候,所有的呼叫都在同一时间发生,尽管我过去一直在等待。如果CSV中有10行,那么调用该函数的所有10行将同时发生。但我希望它一个接一个地发生。只有当第一行的操作完成时,我才希望操作第二行

我的问题是所有呼叫都是同时发生的,而不是一个接一个地发生。

试试这段代码

var fs = require('fs');
var parse = require('csv-parse');
var async = require('async');

var inputFile='src/working_file.csv';

var parser = parse({delimiter: ','}, function (err, data) {
  async.eachSeries(data, function (line, callback) {
    // do something with the line
    doSomething(line).then(function() {
      // when processing finishes invoke the callback to move to the next one
      callback();
    });
  })
});
fs.createReadStream(inputFile).pipe(parser);

您也可以使用

是否可以显示处理十行的代码?Node.js的工作方式与其他js平台相同。查看可能重复的David,我已经更清楚地解释了我的问题。您需要提供
getImage
代码,可能其中有一些内容,可能需要一些
wait
var fs = require('fs');
var parse = require('csv-parse');
var async = require('async');

var inputFile='src/working_file.csv';

var parser = parse({delimiter: ','}, function (err, data) {
  async.eachSeries(data, function (line, callback) {
    // do something with the line
    doSomething(line).then(function() {
      // when processing finishes invoke the callback to move to the next one
      callback();
    });
  })
});
fs.createReadStream(inputFile).pipe(parser);