【发布时间】:2018-12-12 01:44:01
【问题描述】:
是否有任何尝试将 C# 5.0 中的 async/await 功能引入任何可以编译为 JavaScript 的语言(例如 CoffeScript)? (所以它可以在 web 浏览器或 node.js 中使用。)
【问题讨论】:
-
浏览器内 JavaScript 和通过 node.js 编写的 JavaScript 有自己的异步编程方式。最好简单地了解它的工作原理并按预期使用它,而不是试图将其强制转换为不同的模型(无论如何这可能是完全不可能的)。
-
@Pointy:C# 5 的等待是围绕相同回调模型的语法包装器。在任何语言中,它们都比回调更容易使用。
-
好吧,我当然要听从你更广泛的经验 :-)
-
@Pointy 这不是真的——浏览器中的 JS 和 NodeJS 上的 JS 从根本上具有 相同 编程模型,那就是事件循环加上诸如 setTimeout、事件之类的基本原理, 和回调。碰巧很多(但不是全部)NodeJS 的异步函数使用回调,而在浏览器中它更多的是事件。但这只是统计数据和风格的问题。
-
@flow 我并不是说浏览器和 Node 中的 JavaScript 有自己的 distinct 异步模型;我列出了这两个环境,因为还有其他环境(尤其是 Rhino)有 同步 I/O(等)操作。