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

Den*_*one 6 javascript backbone.js internet-explorer-11 es6-promise

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

'Promise' is undefined'
Run Code Online (Sandbox Code Playgroud)

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

return Promise.all(promises);
Run Code Online (Sandbox Code Playgroud)

promises 是需要发生的一系列操作,如果有任何失败则被拒绝.

问题:根据我的研究,IE不支持,Promise所以是否可以应用这个返回值来完成同样的事情?

Emi*_*ron 6

由于您使用的是Backbone,因此承诺可能是jQuery的承诺.您可以使用jQuery .when函数执行相同的操作Promise.all:

return $.when.apply($, promises);
Run Code Online (Sandbox Code Playgroud)

对于大多数其他简单的情况,你调用像save和的函数fetch,你可以通过使用提供的回调完全避免promises:

model.save({
    context: this,
    success: this.onModelSuccess
});
Run Code Online (Sandbox Code Playgroud)

没有必要使用另一个库,因为Backbone已经使用jQuery(默认情况下),除非你不喜欢jQuery延迟或者你正在使用别的东西来代替jQuery.