How can I use synchronize.js with node's fs.exists?
Node的fs.exists函数未遵循通常的回调。回调仅获取具有true或false的参数,而不是通常的错误和结果。因此,我不知道如何在sync.await中使用它。
是否有一种简单的方法可以将sync.await与不遵循常规节点回调约定的函数一起使用?
此代码:
1 | var alreadyExists = sync.await(fs.exists(fileName, sync.defer())); |
导致错误:
Error: done() invoked with non-Error: true
因为sync.defer()得到了一个布尔值来代替错误。
注意:是的,fs.exists将来会被弃用。那是一个不同的主题。
您可以从延迟的回调中创建部分函数,??其中
1 2 | var defer = sync.defer(); var alreadyExists = sync.await(fs.exists(fileName, defer.bind(defer, null))); |