冰咖啡脚本是支持还是将支持承诺?

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 包装器似乎相当容易。

以上是关于冰咖啡脚本是支持还是将支持承诺?的主要内容,如果未能解决你的问题,请参考以下文章

PS4仍是主力!索尼承诺不会放弃PS4玩家,将会提供支持到2022年

咖啡の设备便携式冰滴壶——Dripo 使用体验

使用咖啡脚本的正确时间

入门设计模式之享元

自然语言处理将彻底改变企业的业务

filename too long——探究Linux支持最长文件名255字节还是字符