【问题标题】:JS: How to test for async function supportJS:如何测试异步函数支持
【发布时间】:2018-06-30 16:52:41
【问题描述】:

我想知道是否可以在 JS 中测试异步函数支持。

try {
    async () => {}
}
catch (err) {
    // No support
}

上述方法不起作用,因为它允许在 Node v6 中转义语法错误。

/secret/test.js:8
    async () => {}
          ^

SyntaxError: Unexpected token (

那么您认为测试异步支持的最佳(如果有的话)方法是什么?

【问题讨论】:

    标签: javascript node.js asynchronous async-await


    【解决方案1】:

    使用邪恶的评估

    var asyncAwait = function() {
            try {
                eval("(function() { async _ => _; })();");
            } catch (e) {
                return false;
            }
    
            return true;
        }();
    

    注意,如果引擎支持 async/await 但不支持箭头符号,则此操作失败,但是,我相信不存在这样的引擎

    【讨论】:

    • 为什么是 IIFE?只需eval("(async function() {})")
    • 是的,我从前一段时间使用的旧“es6Features”对象中剪切/粘贴代码 - 测试所有 es6+ 好东西
    • 或者像这样使用Function构造函数进行功能测试可能会更好
    • 正如我所说,这是我不久前写的,从未看到“生产”的光芒 - 将此代码视为指南而不是明确的答案(有效)
    猜你喜欢
    • 1970-01-01
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    • 2014-02-08
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多