Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.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 如何将synchronize.js与节点';s.fs存在吗?_Javascript_Node.js_Asynchronous_Fs_Synchronize - Fatal编程技术网

Javascript 如何将synchronize.js与节点';s.fs存在吗?

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()用布尔值代替了错

节点的函数不遵循通常的回调函数。回调函数只获取一个包含true或false的参数,而不是通常的错误和结果。因此,我不知道如何将它与sync.await一起使用

有没有一种简单的方法可以将sync.await与不遵循正常节点回调约定的函数一起使用

此代码:

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()
是一种充满并发性问题的反模式的讨论。这个小片段需要我花点时间来理解,但谢谢!