【问题标题】:With when.js how can I convert a promise to a Node.js style callback?使用 when.js 如何将 Promise 转换为 Node.js 样式的回调?
【发布时间】:2013-06-16 08:30:03
【问题描述】:

我正在使用 IcedCoffeeScript。

我想写这个:

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

Promise#alwayswhen.js 中已弃用。

还有其他方法吗?

【问题讨论】:

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


    【解决方案1】:

    Promise#alwayswhen.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 只需成功返回就可以做到!)。

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2021-08-25
      • 2015-12-11
      • 2020-02-05
      • 2017-03-27
      • 2018-04-23
      • 1970-01-01
      • 2018-12-12
      相关资源
      最近更新 更多