背景:我的任务是帮助解决以下错误的问题:
'Promise' is undefined'
这是我们的sessionsmodel.js脚本的一部分:
return Promise.all(promises);
promises
是需要发生的一系列操作,如果有任何失败,则会被拒绝。
问题:根据我的研究,IE不支持Promise
,那么有没有可以应用于此返回值的解决方案,可以完成同样的事情?
答案 0 :(得分:5)
由于您使用的是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
答案 1 :(得分:1)
ES6 Promise规范由" good"实施。 Q,When,RSVP,Bluebird,Lie以及更多... {/ p>等图书馆
如果您想了解有关Promises的更多信息,请查看以下链接: Promises
答案 2 :(得分:1)
我建议您使用polyfill。