我已经管理一个用backbone.js制造的项目。该项目于2013年首次发布。目前,我试图弄清楚他们之前的工作。
我发现他们经常使用诺言。
run: function () {
if (this.initialAppViewMethod) {
Promise.resolve(this.model.get('session').fetch())
.catch(this.showLoginView.bind(this))
.then(this.initMainView.bind(this));
}
},
我一直想知道他们是否使用Promise。
btw:如何将此脚本转换为使用纯jQuery功能?
有人可能会使用promise.js带有骨干的j可以轻松地与另一个lib集成,但没有代码,这只是猜测。
如Bergi提到的:
因为jQuery"承诺"不是纯的?
这是在jQuery 3中修复的。
骨干异步的功能,例如fetch
在后台使用jQuery的ajax
,它返回JQXHR对象。
jQuery xmlhttprequest(JQXHR)对象由
$.ajax()
返回 jQuery 1.5是浏览器本机XMLHTTPREQUEST的超集 对象。[IT]实施 承诺接口,为它们提供所有属性,方法和 承诺的行为(有关更多信息,请参见延期对象)。
另外,您可以直接使用骨干异步函数回调和选项:
run: function () {
if (this.initialAppViewMethod) {
this.model.get('session').fetch({
context: this,
error: this.showLoginView,
success: this.initMainView
});
}
},
就足够了。