Javascript 不推荐使用警告:不使用回调调用异步函数是不推荐的。-如何找到;功能:";是
我最近将我的节点更新为7.2.1,并注意到出现了一个警告: (节点:4346)弃用警告:不使用回调调用异步函数是弃用的 这是什么Javascript 不推荐使用警告:不使用回调调用异步函数是不推荐的。-如何找到;功能:";是,javascript,node.js,asynchronous,Javascript,Node.js,Asynchronous,我最近将我的节点更新为7.2.1,并注意到出现了一个警告: (节点:4346)弃用警告:不使用回调调用异步函数是弃用的 这是什么4346?我在js文件中只有2000行,所以它不能是行号。在哪里可以找到代码?您可以使用或选项 例如: node --trace-deprecation app.js 或: 第一个选项将记录堆栈跟踪,第二个选项将抛出一个错误(如果未捕获,也将记录堆栈跟踪) 另外,4346很可能是进程ID。您需要为异步方法包含回调函数(writeFile) 比如说 var fs = r
4346
?我在js文件中只有2000行,所以它不能是行号。在哪里可以找到代码?您可以使用或选项
例如:
node --trace-deprecation app.js
或:
第一个选项将记录堆栈跟踪,第二个选项将抛出一个错误(如果未捕获,也将记录堆栈跟踪)
另外,
4346
很可能是进程ID。您需要为异步方法包含回调函数(writeFile
)
比如说
var fs = require('fs');
fs.writeFile('writeMe.txt',data,'utf8',(error)=>{
// your code goes here
});
在哪里
是回调函数
从版本:v7.0.0回调参数不再是可选的。不传递它将发出弃用警告 请参阅:
更多信息。我个人更喜欢以下两种方法 1: 2:
这是因为您没有通过使用err回调捕获错误 在代码中使用如下所示
fs.write('./abc.txt',function(err){
if(err){
return console.log(err);
}
else
{
console.log('success.!');
}
});
我收到了同样的警告
[DEP0013] DeprecationWarning: Calling an asynchronous function without callback is deprecated.
同样的问题是不知道是哪部分代码引起的。因此,我查看了我最近修改的代码,并发现以下语句可疑:
Fs . writeFile (path, aString, cb, encoding);
问题是cb(‘回调’)和编码参数的顺序错误。
我只需将上述内容更改为:
Fs . writeFile (path, aString, encoding, cb);
但问题确实在于错误的警告信息。
我传递了一个回调参数,但只有一个
不是函数而是字符串。因此,如果警告已经发出
说
。。。发生的事情是显而易见的。当然
警告中的行号也很好
关键是我调用writeFile()时没有
已弃用的回调参数。我是
使用错误类型的参数调用writeFile()。
这应该是一个错误,而不是警告。只要提到:
fs.writeFile('<your file name>',<your data>,function(){});
fs.writeFile(“”,function(){});
在这里,您需要提到函数(){},因为这是以异步方式编写文本的回调()
使用writeFileSync将进行同步调用。我应该使用
writeFileSync
而不是writeFile
:)不,您可能仍然喜欢使用非阻塞版本,即使您对结果不感兴趣。只需为回调传递函数(){}。是的,那个号码就是进程id。我也是。将writeFile更改为writeFileSync。
[DEP0013] DeprecationWarning: Calling an asynchronous function without callback is deprecated.
Fs . writeFile (path, aString, cb, encoding);
Fs . writeFile (path, aString, encoding, cb);
"WWARNING: calling fs.writeFile() with a string-argument
where a function is expected"
fs.writeFile('<your file name>',<your data>,function(){});