NodeJS:没有回调的异步函数:需要两个回调吗?

时间:2018-04-30 04:14:49

标签: node.js asynchronous deprecated

我不明白为什么会有弃用警告。我看过其他Q& A但我仍然没有得到它。弃用是否意味着它只是旧学校而不再是最佳实践?我该怎么办?非常感谢!

let fs = require('fs');

fs.mkdir('stuff', ()=>{
  fs.readFile('readMe.txt', (err, data)=>{
    if(err){
      throw err;
    };
    fs.writeFile('./stuff/writeMe.txt', (err, data)=>{
      if (err){
        throw err;
      };
    });
  });
});

1 个答案:

答案 0 :(得分:1)

显示弃用消息,因为你的fs.writeFile缺少一个参数,即要在文件上写入的数据:

let fs = require('fs');

fs.mkdir('stuff', () => {
  fs.readFile('readMe.txt', (err, data)=>{
    if (err) {
      throw err;
    }
    console.log(data.toString());
    fs.writeFile('./stuff/writeMe.txt', 'test string to write', (err, data) => {
      if (err) {
        throw err;
      }

      console.log(data);
    });
  });
});

如果没有数据写入,女巫不是可选的,没有回调参数。