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);
对于调用函数 save
和 fetch
的大多数其他简单情况,您可以使用提供的回调完全避免承诺:
model.save({
context: this,
success: this.onModelSuccess
});
无需使用其他库,因为 Backbone 已经使用 jQuery(默认情况下),除非您不喜欢 jQuery deferred ] 或者您正在使用其他东西代替 jQuery。
我建议你使用 polyfill。
背景: 我的任务是帮助解决出现以下错误的问题:
'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);
对于调用函数 save
和 fetch
的大多数其他简单情况,您可以使用提供的回调完全避免承诺:
model.save({
context: this,
success: this.onModelSuccess
});
无需使用其他库,因为 Backbone 已经使用 jQuery(默认情况下),除非您不喜欢 jQuery deferred ] 或者您正在使用其他东西代替 jQuery。
我建议你使用 polyfill。