我正在寻找菊花链 Backbone 请求,其中第二个请求取决于第一个请求的结果。我该如何以正确的方式做到这一点?jQuery$.done()
似乎并不适合我。为了更好地解释,这里是一个假设的例子:
我有一份供应商清单,每个供应商都有一份他们提供给公司的零件清单。我想获取所有供应商,然后获取此供应商列表的所有零件。这是我试图在没有运气的情况下使用的示例代码。
var App = {};
App.Supplier = Backbone.Model.extend({ });
App.Part = Backbone.Model.extend({ });
App.Suppliers = Backbone.Collection.extend({
model: App.Supplier
});
App.Parts = Backbone.Collection.extend({
model: App.Part
})
var suppliers = new App.Suppliers;
var parts = new App.Parts;
var supplier_request = suppliers.fetch();
supplier_request.done(function(){
parts.fetch_by_suppliers([supplier1, supplier2, ...]);
});
发生的情况是第二个请求在收到第一个回复之后和模型实例化之前App.Supplier
立即触发。结果是——供应商列表保持为空,第二个请求以空的供应商列表触发。