是否尝试将 C# 5.0 中的 async/await 功能引入任何可以编译为 JavaScript 的语言(例如 CoffeScript)? (因此它可以在 Web 浏览器或 Node.js 中使用。)
最佳答案
Async位于 JavaScript 和谐功能列表中。到目前为止,有很多尝试在浏览器或节点中提供此类功能,但似乎没有一个与 Harmony 建议兼容:
- 可以使用 JS1.7 生成器模拟异步(请参阅 task.js )。 V8 尚未支持开箱即用 ( without experimental mode ),但可以在 FF 中使用。可能traceur或Masacra编译器可用于将生成器引入其他环境。
- 有node-fibers库提供了节点中异步编程的其他机制(尽管会降低性能)。描述了基于 v8cgi 的其他尝试 here .
- Rhino 有 continuations开箱即用,提供了良好的选择。这就是为什么Ringo.js可能值得一看。
- 基于js2js翻译的解决方案很少,例如:jscx , NarrativeJS , jwacs , StratifiedJS 。有些支持与节点集成。
- 有许多 Promise/Future 库试图在不扩展语法的情况下解决回调问题,但是它们都存在可组合性问题,即无法使用跨回调之类的语言结构。
关于javascript - Web 浏览器或 Node.js 中的异步/等待?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7704097/