【问题标题】:Is it safe to use async/await now? [closed]现在使用 async/await 安全吗? [关闭]
【发布时间】:2017-06-30 04:54:58
【问题描述】:

在 Javascript 中使用 async-await 是否安全而不是 generators-promises 现在,知道语法尚未生​​成,并且 会随着 ES8 的发布而出现吗?

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

【问题讨论】:

  • “安全”是什么意思?对谁、在哪里、对什么可能性安全?
  • 语法不会改变,但你会想要使用转译器很长一段时间。 “安全”是指转译还是转译?
  • without some transpilers - 你想成为safe 的环境是什么?浏览器?绝对不是,几乎永远不会,直到世界决定 Internet Explorer 最终 - 节点,不支持它(还)
  • 从长远来看,async/await 还没有正式发布。

标签: javascript ecmascript-6 async-await ecmascript-2017


【解决方案1】:

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

我可以使用网站:http://caniuse.com/#search=await

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

通常鼓励答案包含相关信息以避免链接失效。但具有讽刺意味的是,这个答案的问题恰恰相反:这个答案在上面的链接之前很久就会腐烂(下面的信息将变得无效)。所以总是先检查 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 服务器非常过时。

【讨论】:

  • 为 caniuse 数据添加了最常用的版本。似乎世界上使用最多的浏览器是 Chrome for Android,全球使用率约为 25%
  • 根据the release notes,Safari 10.1 在 macOS 和 iOS 的 Safari 中增加了对 ECMAScript 2016 和 ECMAScript 2017 的支持,包括对 async 和 await 的支持。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-12
  • 1970-01-01
  • 2017-04-10
  • 2019-05-29
  • 2021-08-23
  • 2015-05-11
相关资源
最近更新 更多