0

を使用して大きな.csvファイルを読み込んでいますfast-csv

myFile.js

var count = 0;
var stream = fs.createReadStream("name of file");
fcsv(stream)
  .on('data', function(data) {
    ModelName.find(query, function(err, docs) {
      console.log('docs', docs);
      count = count++;
    });
  })
  .on('end', function() {
    console.log('done', count);
  })
  .parse();

スクリプトが実行され、 のリストdocsが出力され、on('end')がトリガーされます。

countの数を出力する値を取得するにはどうすればよいdocsですか? 現在、それは印刷され0ます。

助言がありますか?

4

1 に答える 1

0

count変数に 2 つの異なるインクリメンタル スタイルを混同しました。それを強調するために、この小さな例を見てみましょう。

var counter = 0
for (var i = 0; i < 10; i++) {
    counter = counter++ //<-- the bug is right here
};
console.log(counter) // prints 0

何が起こるかというcounter++と、右側がポスト インクリメンタルです。つまり、 は (0 を意味する)counter++の元の値に評価され、 1counterずつインクリメントcounterされます。その後、元の値が left-side に割り当てられcounterます。

代わりに書きたいのは、次のいずれかです。

  • counter = ++counter
  • counter = counter + 1
  • counter++
  • counter += 1
于 2013-11-19T23:04:32.033 に答える