Javascript 如何将synchronize.js与节点';s.fs存在吗?
节点的函数不遵循通常的回调函数。回调函数只获取一个包含true或false的参数,而不是通常的错误和结果。因此,我不知道如何将它与sync.await一起使用 有没有一种简单的方法可以将sync.await与不遵循正常节点回调约定的函数一起使用 此代码:Javascript 如何将synchronize.js与节点';s.fs存在吗?,javascript,node.js,asynchronous,fs,synchronize,Javascript,Node.js,Asynchronous,Fs,Synchronize,节点的函数不遵循通常的回调函数。回调函数只获取一个包含true或false的参数,而不是通常的错误和结果。因此,我不知道如何将它与sync.await一起使用 有没有一种简单的方法可以将sync.await与不遵循正常节点回调约定的函数一起使用 此代码: var alreadyExists = sync.await(fs.exists(fileName, sync.defer())); 导致错误的原因: 错误:done()调用时未出现错误:true 因为sync.defer()用布尔值代替了错
var alreadyExists = sync.await(fs.exists(fileName, sync.defer()));
导致错误的原因:
错误:done()调用时未出现错误:true
因为sync.defer()用布尔值代替了错误
注意:是的,fs.exists将在将来被弃用。这是一个不同的主题。您可以从延迟回调创建一个,其中err
参数(第一个)预先填充为null
:
var defer = sync.defer();
var alreadyExists = sync.await(fs.exists(fileName, defer.bind(defer, null)));
仅供参考,请参阅关于使用
fs.exists()
是一种充满并发性问题的反模式的讨论。这个小片段需要我花点时间来理解,但谢谢!