Promise.all() 使用 Backbone 解决 IE 11

Promise.all() work around for IE 11 with Backbone

背景: 我的任务是帮助解决出现以下错误的问题:

'Promise' is undefined'

这是我们 sessionsmodel.js 脚本的一部分:

return Promise.all(promises);

promises 是一系列需要发生的动作,如果有任何失败,它将被拒绝。

问题: 根据我的研究,IE 不支持 Promise 那么是否有解决方法可以应用于此 return 值完成同样的事情?

ES6 Promise 规范由 "good" 库实现,例如 Q, When, RSVP, Bluebird, Lie 等...

如果您想了解有关 Promises 的更多信息,请查看此 link: Promises

由于您使用的是 Backbone,所以承诺可能是 jQuery。您可以使用 jQuery .when function 来执行与 Promise.all:

相同的操作
return $.when.apply($, promises);

对于调用函数 savefetch 的大多数其他简单情况,您可以使用提供的回调完全避免承诺:

model.save({
    context: this,
    success: this.onModelSuccess
});

无需使用其他库,因为 Backbone 已经使用 jQuery(默认情况下),除非您不喜欢 jQuery deferred ] 或者您正在使用其他东西代替 jQuery。

我建议你使用 polyfill