Promise.all() обойти для IE 11 с Backbone
Справочная информация: мне было поручено помочь решить проблему со следующей ошибкой:
'Promise' is undefined'
Который является частью нашего сценария sessionmodel.js:
return Promise.all(promises);
promises
это набор действий, которые должны произойти, и в случае неудачи он отклоняется.
Вопрос: на основании моих исследований IE не поддерживает Promise
так есть ли обходной путь, который можно применить к этому возвращаемому значению, который будет выполнять то же самое?
3 ответа
Поскольку вы используете Backbone, обещания, вероятно, являются обещаниями jQuery. Вы могли бы использовать JQuery .when
Функция сделать так же, как Promise.all
:
return $.when.apply($, promises);
Для большинства других простых ситуаций, когда вы вызываете такие функции, как save
а также fetch
Вы можете полностью избежать обещаний, используя предоставленные обратные вызовы:
model.save({
context: this,
success: this.onModelSuccess
});
Нет необходимости использовать другую библиотеку, потому что Backbone уже использует jQuery (по умолчанию), если вам не нравится отложенная jQuery или что вы используете что-то другое вместо jQuery.