gpt4 book ai didi

javascript - Backbone JS Promises 在模型上设置属性之前解析

转载 作者:数据小太阳 更新时间:2023-10-29 04:46:35 25 4
gpt4 key购买 nike

使用主干模型,假设它从服务器获取一些额外的属性(如“FirstName”和“LastName”),我有如下内容:

var myModel = new Backbone.Model({ id: 10 });
var myOtherModel = new Backbone.Model({ id: 20 });
$.when(myModel.fetch(), myOtherModel.fetch()).done(function () {
console.log(myModel.toJSON());
});

输出:

{ id: 10 }

片刻后的输出:

{ id: 10, FirstName: "Joe", LastName: "Schmo" }

似乎 Backbone 的 promise 存在缺陷,因为返回的 jqXHR 对象有一个在 backbone 完成它自己的过程之前解决的 promise。

是这样吗?是否有其他必须做的事情来确保 fetch() 返回的 promise 直到所有 Backbone 的 set 都没有解决已经完成,或者至少是 set它发生在我附加的处理程序之前?

最佳答案

发现问题。

我正在获取的模型覆盖了 Backbone.Model.sync。

    sync: function (method, model, options) {
// Some stuff
Backbone.sync(method, model, options); // missing return
}

因为它没有返回 Backbone.sync() promise 立即解决。如果不是因为 $.when() 包装了 fetch() 调用,我会发现这个,它会默默地接受任何旧东西,即使它不是一个 promise ,并立即将其视为已解决。

关于javascript - Backbone JS Promises 在模型上设置属性之前解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12057134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com