现在使用 async/await 安全吗?

Is it safe to use async/await now?

在 Javascript 中使用 async-await 而不是 generators-promises 现在,知道语法还没有和 会随着 ES8 的发布而出现吗?

我可以指望它在哪些浏览器中可用,不支持此语法的浏览器有多常见?我所说的安全是指没有像 babel 这样的转译器?

每当我有这样的问题时,我会检查两个地方:

Can I Use 网站:http://caniuse.com/#search=await

绿色节点http://node.green/#async-functions

通常鼓励答案包含相关信息以避免 link 腐烂。但具有讽刺意味的是,这个答案有完全相反的问题:这个答案会在上面的 links 之前很久就腐烂(下面的信息将变得无效)。所以总是先检查 caniuse 和 node.green:

自 caniuse.com 截至 2019 年 4 月:

  • IE *:不支持(最常用的版本 = 11)
  • Edge:来自版本 15(最常用的版本 = 17)
  • Firefox:来自版本 52(最常用的版本 = 65)
  • Chrome:从版本55开始(最常用的版本=72)
  • Safari:从版本 10.1 开始(最常用的版本 = 12)
  • Opera: 从版本 42 开始(最常用的版本 = 58)
  • iOS Safari: 从版本 10.3 开始(最常用的版本 = 12.1)
  • Opera Mini *:不支持
  • Android 浏览器 *: 从 5(最常用的版本 = 4.4)
  • Chrome for Android:来自版本 55(最常用的版本 = 71)

从 node.green 到 2019 年 4 月

  • Node.js:自版本 8.0.0

因此,取决于您认为可以接受的内容,它是安全的还是不安全的。注意以下几点:

  • 这个问题最初是在 2017 年提出的,我们已经取得了长足的进步,所以 async/await 现在使用起来更加安全。
  • 到 2019 年,大多数移动设备已经支持 async/await。
  • Node 8 于 2017 年 5 月发布,因此在 Node.js 上使用 async/await 应该是安全的,除非您的 Node.js 服务器非常过时。