冰咖啡脚本是支持还是将支持承诺?
Posted
技术标签:
【中文标题】冰咖啡脚本是支持还是将支持承诺?【英文标题】:Is iced coffeescript supporting or going to support promises? 【发布时间】:2015-02-15 16:46:45 【问题描述】:作为一名 node.js 实践者,我正在积极使用咖啡脚本和基于promises 的函数。最近我发现了iced coffeescript,我想知道我的方法是否可以与“冰等待延迟”的方法一起使用。
所以这是我的问题,是否支持为 iced coffeescript 实施或计划的承诺?还是宁愿冰咖啡脚本让我回到回调函数的世界?
另外作为一个附带问题,据我所知,有一个 ECMAscript 7 草案来引入等待异步模式来解决这个问题。如果它成为标准,iced coffeescript 团队是否计划融入它?
干杯。
【问题讨论】:
【参考方案1】:Iced CoffeeScript 开发最近停滞不前。我认为 ICS 是一个有趣的实验——考虑到它目前的采用,我真的不推荐使用它。至于支持或计划中的支持,没有 - 将来可能会有,但问题跟踪器显示没有讨论它已打开的问题。
ECMAScript 7 确实有异步函数——因为这些函数使用了 Promise,所以没有理由假设在 ICS 中完成了任何工作来支持它们。再说一遍 - 没有人能说出未来,并且可能会在未来某个时间点进行研究。
【讨论】:
【参考方案2】:Iced 肯定是活跃的,并且在许多情况下(例如并行调用)比 Promise 更灵活。现在有一个 ES7 async
的开放 PR 在 maxtaco/coffee-script#147,并且比普通 Coffee 上的开放 PR 要简单得多(#3757、#3813)。
使用Iced with Promise 的最简单方法是nodeify
Promise。我在 Iced 代码中使用了许多基于 Promise 的库,没有遇到任何问题。
我认为大多数使用 Iced 的程序员更喜欢 await/defer 的简洁语法,而不是 promise。现在使用 Iced 的一个主要优势是,现在可以使用的 Iced 代码将来也可以使用,尽管随着语法的最终确定,ES6/7 和 Coffee 实现中发生了任何底层变化。
【讨论】:
在 ICS 中直接实现 nodeify 包装器似乎相当容易。以上是关于冰咖啡脚本是支持还是将支持承诺?的主要内容,如果未能解决你的问题,请参考以下文章