Я использую ES6, Promises и fetch в своем проекте Polymer 2. Поскольку мне нужно поддерживать как минимум IE11, я транспилирую с помощью Babel (через полимерную сборку) и использую polyfills.io для полифил-выборки и поддержки 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 только в промисах. Например:
loadSchemas() {
return APP.client
.search("+type:Schema")
.then(result => {
// Do things with results.
})
.catch(error => {
// Deal with errors.
});
}
Если я удаляю ловушку, страница загружается без ошибок, но тогда, очевидно, мой код обработки ошибок не выполняется.
Почему это работает не так, как ожидалось? Он отлично работает в Firefox, Chrome и Safari. Я пробовал несколько разных полифиллов обещаний, но по-прежнему получал ту же ошибку, поэтому не думаю, что это ошибка полифилла.