我得到了预期的 SCRIPT1005: '(' 在 Edge 上使用 JavaScript,在 Chrome 上它工作正常,为什么?

Rey*_*una 4 javascript methods try-catch

我解决了一个在 Edge 上但在 Chrome 上不兼容的问题。因此,我使用 Object.assign(a, {}) 而不是 {...a, {}} 进行了更改。

这是我讨论上一个问题的地方: 我想知道为什么我的网站没有显示在 Edge 上?它是在 JavaScript 上开发的

但是,后来我又犯了一个错误。让我给你解释一下。这是控制台上的这个:SCRIPT1005:预期的'('。此错误仅出现在Edge浏览器上。

main.load = function (page) {
    function getClass(className) {
        return Function('return ' + className)();
    }

    return new Promise((resolve, reject) => {
        try{
            new getClass(page); 
        }catch{ // Here's the: SCRIPT1005: SCRIPT1005: Expected '('; error.
            var count = 0;
            let script = dom("script",document.createElement("div"));
            script.src = `src/pages/${page}/${page}.js`;

            document.body.appendChild(script);
            return;
        }
        resolve(getClass(page));
    });
}```

I'm trying to look for a way to change some promises and try and catch that are wrapping the line the error is telling me on the console that is wrong.

```try{javascript
            new getClass(page); 
        }catch{ // Here's the: SCRIPT1005: SCRIPT1005: Expected '('; error.
            var count = 0;
            let script = dom("script",document.createElement("div"));
            script.src = `src/pages/${page}/${page}.js`;

            document.body.appendChild(script);
            return;
        }```

SCRIPT1005: Expected '('
Run Code Online (Sandbox Code Playgroud)

Rey*_*una 10

要解决这个问题,只需将处理错误输出的参数添加到 catch 语句中即可。这意味着 Edge 需要知道您正在正确处理错误。

所以,我补充说:

     catch (err){}
Run Code Online (Sandbox Code Playgroud)

一切都奏效了!