【问题标题】:Writing asynchronously to a text file using async.mapLimit使用 async.mapLimit 异步写入文本文件
【发布时间】:2016-03-09 00:02:54
【问题描述】:

我正在尝试将 1 到 100 之间的数字(顺序不重要)写入我的文本文件,但只添加了 99。

这里有什么问题?

app.get('/async', function(req, res) {
  // I create my array here.
  var arr = [];
  for (a = 0; a <= 100; a++) {
    arr.push(a);
  }

  // Here's my async.mapLimit function.
  async.mapLimit(arr, 20, function(arr1, callback) {
    console.log("yes");
    fs.writeFile("ehe.txt", arr1 + "\n", function(err) {
      if(err) {
        console.log(err);
      }
    });
    callback();
  });
});

【问题讨论】:

  • 你应该追加到文件而不是覆盖它。
  • 您在a &lt; 100 的位置明确添加数字,您为什么希望添加100?
  • @Paulpro 是对的,我应该使用 fs.appendFile。现在问题解决了。安德拉斯,我的错。我将其更正为
  • 您可能还希望将循环从1 更改为100 而不是099,并在开始之前使用fs.truncate 清空文件附加到它。

标签: node.js asynchronous async.js


【解决方案1】:

我使用的是 fs.writeFile 而不是 fs.appendFile,这导致了覆盖。将 writeFile 更改为 apendFile 解决了这个问题,我的错。

【讨论】:

    猜你喜欢
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 2011-02-06
    • 2013-03-15
    相关资源
    最近更新 更多