如何将 synchronize.js 与节点的 fs.exists 一起使用?
How can I use synchronize.js with node's fs.exists?
Node 的fs.exists 函数不遵循通常的回调回调仅获取一个参数为 true 或 false,而不是通常的错误和结果。因此,我无法弄清楚如何将它与 sync.await.
一起使用
有没有一种简单的方法可以将 sync.await 与不遵循正常节点回调约定的函数一起使用?
此代码:
var alreadyExists = sync.await(fs.exists(fileName, sync.defer()));
导致错误:
Error: done() invoked with non-Error: true
因为 sync.defer() 得到了一个布尔值来代替错误。
注意:是的,fs.exists 将来会被弃用。那是另一个话题。
您可以从延迟回调创建一个 partial function,其中 err
参数(第一个)预填充为 null
:
var defer = sync.defer();
var alreadyExists = sync.await(fs.exists(fileName, defer.bind(defer, null)));
Node 的fs.exists 函数不遵循通常的回调回调仅获取一个参数为 true 或 false,而不是通常的错误和结果。因此,我无法弄清楚如何将它与 sync.await.
一起使用有没有一种简单的方法可以将 sync.await 与不遵循正常节点回调约定的函数一起使用?
此代码:
var alreadyExists = sync.await(fs.exists(fileName, sync.defer()));
导致错误:
Error: done() invoked with non-Error: true
因为 sync.defer() 得到了一个布尔值来代替错误。
注意:是的,fs.exists 将来会被弃用。那是另一个话题。
您可以从延迟回调创建一个 partial function,其中 err
参数(第一个)预填充为 null
:
var defer = sync.defer();
var alreadyExists = sync.await(fs.exists(fileName, defer.bind(defer, null)));