Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不推荐使用警告:不使用回调调用异步函数是不推荐的。-如何找到;功能:";是_Javascript_Node.js_Asynchronous - Fatal编程技术网

Javascript 不推荐使用警告:不使用回调调用异步函数是不推荐的。-如何找到;功能:";是

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

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

(节点:4346)弃用警告:不使用回调调用异步函数是弃用的

这是什么
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(){});