骨干带有承诺或纯粹的jQuery来解决诺言



我已经管理一个用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
        });
    }
},

就足够了。

最新更新