如何将synchronize.js与节点的fs.exists一起使用?

时间:2015-09-04 16:07:40

标签: javascript node.js asynchronous fs synchronize

节点的fs.exists函数不遵循通常的回调。回调只获得一个带有true或false的参数,而不是通常的错误和结果。因此,我无法弄清楚如何在sync.await中使用它。

是否有一种简单的方法可以将sync.await与不符合普通节点回调约定的函数一起使用?

此代码:

var alreadyExists = sync.await(fs.exists(fileName, sync.defer()));

导致错误:

  

错误:使用非错误调用done():true

因为sync.defer()得到一个布尔代替错误。

注意:是的,fs.exists将来会被弃用。这是一个不同的主题。

1 个答案:

答案 0 :(得分:2)

您可以从延迟回调中创建partial function,其中err参数(第一个)预填充为null

var defer         = sync.defer();
var alreadyExists = sync.await(fs.exists(fileName, defer.bind(defer, null)));