使用when.js如何将promise转换为Node.js样式回调?

时间:2013-06-19 17:21:21

标签: node.js iced-coffeescript when-js

我正在使用IcedCoffeeScript。

我想写这个:

User.find(id).always esc doneawait User.find(id).always defer e, user

Promise#always已弃用when.js

还有其他办法吗?

1 个答案:

答案 0 :(得分:1)

Promise#always已弃用when.js,将在即将发布的版本中删除。

但是,promise.always(onFulfilledOrRejected, onProgress)只不过是.then(onFulfilledOrRejected, onFulfilledOrRejected, onProgress)的捷径。所以不要使用

.always(handler)

你必须使用

.then(handler, handler)

如果您使用.always的内联函数和.then一样,可能会影响您的代码,最好将它们作为单独的函数提取。

when.js的作者建议使用promise.ensure代替promise.always 。更多详情here

  

promise.ensure更安全,因为它无法将失败转化为成功(always只需成功返回就可以做到!)。

我希望这会有所帮助。