javascript - 我可以检测浏览器中可用的异步/等待吗?

标签 javascript syntax async-await ecmascript-2017

<分区>

如题,如何检测浏览器对 async/await es7 的支持?

这可能吗?

最佳答案

与任何其他句法特征一样,应该对其进行评估以便检测。由于可以限制 eval,因此在启用 CSP 时这可能是不可能的:

let isAsync = true;

try {
  eval('async () => {}');
} catch (e) {
  if (e instanceof SyntaxError)
    isAsync = false;
  else
    throw e; // throws CSP error
}

如果目标浏览器有可能不支持某项功能,则应转译代码。

避免 CSP 对 eval 限制的替代方法是使用外部脚本来检测句法特征,as described here .

关于javascript - 我可以检测浏览器中可用的异步/等待吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46126977/

相关文章:

javascript - 如何解码这个加密代码?

javascript - 如何在 Google 云端硬盘选择器上显示文件夹而不显示私有(private)文件?

c - 协调 C 中数组的声明和使用语法

java - OGNL 语法问题

c++ - 如何在 C++ 中创建匿名函数数组?

c# - 异步一直向下问题

javascript - 如何检查 Jest 中是否调用了静态方法?

c# - .Net Core Async 关键部分(如果在同一实体上工作)

javascript - 是否可以继续暂停的异步函数? (2)

javascript - Nativescript (JavaScript) 中的函数中的绑定(bind)变量未更新