57

现在在 Javascript 中使用 async-await 而不是 generators-promises 是否安全,知道语法尚未制定并将随着 ES8 的发布而出现?

我可以指望哪些浏览器可用,以及这种语法不可用的浏览器有多常见?安全我的意思是没有像 babel 这样的编译器?

4

1 回答 1

81

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

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

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

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

来自 caniuse.com 截至 2019 年 4 月:

  • IE *:不支持(最常用的版本 = 11)
  • 边缘:从版本 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)
  • 适用于 Android 的 Chrome:从 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 服务器非常过时。
于 2017-02-12T03:28:10.523 回答