我可以在浏览器中检测到async/await吗?

314*_*ple 6 javascript syntax async-await ecmascript-2017

作为标题,如何在浏览器中检测async/await es7支持?

那可能吗?

Est*_*ask 9

与任何其他语法功能一样,应对其进行评估以便进行检测.由于eval可以限制,因此在启用CSP时可能无法实现:

let isAsync = true;

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

如果目标浏览器有可能不支持某个功能,则应该编译代码.

允许避免CSP限制的替代方法eval是使用外部脚本来检测语法功能,如此处所述.