2017-08-02 128 views
2

我正在使用electron + angularjs。当我使用id3js从mp3文件读取标签时,我开始得到DeprecationWarning: Calling an asynchronous function without callback is deprecated.的问题。DeprecationWarning:不使用回调调用异步函数已弃用

id3({file: pathtofile,type: id3.OPEN_LOCAL}, function(err, tags) { 
      if (err) { 
       console.log(err); 
      } else { 
       console.log(tags);} 
}); 

代码retun从MP3文件的标签,但继续产生这种弃用警告

+0

你的问题是什么? –

+0

我想知道为什么我得到这个错误,以及如何解决它 –

+0

[DeprecationWarning:调用异步函数而不回叫已被弃用。 - 如何找到“功能:”是什么?](https://stackoverflow.com/questions/41195580/deprecationwarning-calling-an-asynchronous-function-without-callback-is-depreca) – Mistalis

回答

-1

以及我通过改变id3js库文件 解决这个问题,他们使用fs.open所以我改变它是

fs.openSync(self.file, 'r', function(err, fd) { 
         if(err) { 
          return callback(err); 
         } 
         self.fd = fd; 
         callback(); 
        }); 

并没有更多的问题,我将提交此git

+0

这是一个坏的修复程序。除了你的服务器启动代码外,你永远都不想使用同步文件I/O,因为这会破坏服务器的可伸缩性。如果id3js代码使用'fs.open()',则必须使用回调。所以,你展示的东西还没有意义。如果您在id3js中向我们展示导致问题的代码(在您的问题中),我们可以帮助您使用推荐的良好修补程序。 – jfriend00

+0

Plus'fs.openSync()'甚至不需要回调,所以这段代码根本不起作用。它可能会删除警告,但它不会正常工作。 – jfriend00

+0

@在id3js jfriend00代码 'fs.open(self.file, 'R',函数(ERR,FD){ \t \t \t \t \t \t如果(ERR){ \t \t \t \t \t \t \t返回回调(ERR); \t \t \t \t \t \t} \t \t \t \t \t \t小号elf.fd = fd; \t \t \t \t \t \t callback(); \t \t \t \t \t}); ' –