DeprecationWarning:不建议在不回调的情况下调用异步函数. - 如何找到"功能:"的位置?

AGa*_*yer 30 javascript asynchronous node.js

我最近将我的节点更新到7.2.1,并注意到有一个警告:

(node:4346)DeprecationWarning:不建议在不回调的情况下调用异步函数.

这是4346为了什么?我在js文件中只有2000行,所以它不能是行号.我在哪里可以找到代码?

car*_*ant 54

您可以使用--trace-deprecation--throw-deprecation选项.

例如:

node --trace-deprecation app.js
Run Code Online (Sandbox Code Playgroud)

要么:

node --throw-deprecation app.js
Run Code Online (Sandbox Code Playgroud)

第一个选项将记录堆栈跟踪,第二个选项将引发错误(如果未捕获,则还会记录堆栈跟踪).

此外,4346很可能是进程ID.

  • 拿到.我应该使用`writeFileSync`而不是`writeFile` :) (8认同)
  • 不,您仍然可能更喜欢使用非阻止版本,即使您对结果不感兴趣.只需传递函数(){}即可进行回调.是的,这个数字是进程ID. (4认同)

New*_*017 5

您需要为Asynchronous方法包括一个回调函数(writeFile在您的情况下)。

例如

var fs = require('fs');
fs.writeFile('writeMe.txt',data,'utf8',(error)=>{
    // your code goes here
});
Run Code Online (Sandbox Code Playgroud)

哪里

(error) => { });
Run Code Online (Sandbox Code Playgroud)

是回调函数。

从版本:v7.0.0开始
,callback参数不再是可选的。不通过将发出弃用警告。

请参阅:https : //nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback 了解更多信息。