【发布时间】:2017-08-29 17:44:03
【问题描述】:
我在我的 Polymer 2 项目中使用 ES6、Promises 和 fetch。因为我需要至少支持 IE11,所以我正在使用 Babel 进行编译(通过 polymer-build)并使用 polyfills.io 来填充 fetch 和 Promise 支持。我的 polyfills.io 导入发生在任何其他导入之前,如下所示:
<script src="https://cdn.polyfill.io/v2/polyfill.js?features=default,fetch&flags=gated"></script>
当我加载页面时,IE11控制台出现这个错误:
SCRIPT438: Object doesn't support property or method 'catch'
查看我的代码,我唯一一次使用 catch 是在 Promises 中。例如:
loadSchemas() {
return APP.client
.search("+type:Schema")
.then(result => {
// Do things with results.
})
.catch(error => {
// Deal with errors.
});
}
如果我删除了捕获,页面加载时不会出现错误,但它显然没有运行我的错误处理代码。
为什么没有按预期工作?它在 Firefox、Chrome 和 Safari 中运行良好。我尝试了许多不同的 Promise polyfill,但仍然出现相同的错误,所以我认为这不是 polyfill 错误。
【问题讨论】:
标签: javascript polymer internet-explorer-11 es6-promise polyfills