javascript - Web 浏览器或 Node.js 中的异步/等待?

标签 javascript async-await

是否尝试将 C# 5.0 中的 async/await 功能引入任何可以编译为 JavaScript 的语言(例如 CoffeScript)? (因此它可以在 Web 浏览器或 Node.js 中使用。)

最佳答案

Async位于 JavaScript 和谐功能列表中。到目前为止,有很多尝试在浏览器或节点中提供此类功能,但似乎没有一个与 Harmony 建议兼容:

  • 可以使用 JS1.7 生成器模拟异步(请参阅 task.js )。 V8 尚未支持开箱即用 ( without experimental mode ),但可以在 FF 中使用。可能traceurMasacra编译器可用于将生成器引入其他环境。
  • 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/

相关文章:

javascript - 有没有一种工具可以创建我的 javascript 代码层次结构的可视化表示

c# - 在异步函数中,为什么我必须等待?

javascript - 使用多选更改样式

javascript - 拦截 Web 浏览器控制台消息

javascript - 如何获取 Kendo Multi Select 的选定值?

asp.net - 我应该将工作卸载到 ASP.NET 中的其他线程吗?

rust - 如何指示异步函数的返回值与参数的生命周期相同?

c# - 使用 Microsoft.Bcl.Async 的 .NET 4.0 程序集的 RegAsm 失败

javascript - 如何构建对 API 的异步调用?

javascript - 获取 UL 的宽度