现在使用 async/await 安全吗? [关闭]
Posted
技术标签:
【中文标题】现在使用 async/await 安全吗? [关闭]【英文标题】:Is it safe to use async/await now? [closed] 【发布时间】:2017-06-30 04:54:58 【问题描述】:在 javascript 中使用 async-await 是否安全而不是 generators-promises 现在,知道语法尚未生成,并且 会随着 ES8 的发布而出现吗?
我可以指望哪些浏览器可用,不可用此语法的浏览器有多常见?我所说的安全是指没有像 babel 这样的转译器?
【问题讨论】:
“安全”是什么意思?对谁、在哪里、对什么可能性安全? 语法不会改变,但你会想要使用转译器很长一段时间。 “安全”是指转译还是转译?without some transpilers
- 你想成为safe
的环境是什么?浏览器?绝对不是,几乎永远不会,直到世界决定 Internet Explorer 最终死 - 节点,不支持它(还)
从长远来看,async/await
还没有正式发布。
【参考方案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 的支持。以上是关于现在使用 async/await 安全吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
在 promise 请求中使用 async/await 是不是更有效? [关闭]
python 3.5 中的 async/await 关键字是不是受到 C# 中的 async/await 的启发? [关闭]