Promise.all()使用Backbone

时间:2016-12-13 21:43:28

标签: javascript backbone.js internet-explorer-11 es6-promise

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

'Promise' is undefined'

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

return Promise.all(promises);

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

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

3 个答案:

答案 0 :(得分:5)

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

return $.when.apply($, promises);

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

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

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

答案 1 :(得分:1)

ES6 Promise规范由" good"实施。 QWhenRSVPBluebirdLie以及更多... {/ p>等图书馆

如果您想了解有关Promises的更多信息,请查看以下链接: Promises

答案 2 :(得分:1)

我建议您使用polyfill