我正在使用如下代码。
var firstCollection = new FirstCollection();
$.when( firstCollection.fetch( params1 )).done(function() {
// here firstCollection has been enriched. It contains the actual data.
// params2 will depends on firstCollection attirbutes
var secondCollection = new SecondCollection();
$.when( secondCollection.fetch( params2 ) ).done(function() {
// here secondCollection has been enriched. It contains the actual data.
// move to another screen
}).fail( function() {
} );
}).fail(function() {
}).always(function() {
});
我的目标是按顺序执行两个调用,即执行firstCollection
的提取,然后执行secondCollection
的提取。动机是第二次获取取决于firstCollection
属性。
所以我的问题如下。有没有更好的替代方法来实现这个jQuery Deferred或我正在使用的解决方案是正确的?
答案 0 :(得分:0)
也许就是这样:
var firstCollection = new FirstCollection();
var secondCollection = new SecondCollection();
this.listenTo(firstCollection, 'reset', scndfetch);
firstColllection.fetch(params1).then(function(data){ })
scndfetch = function(){
secondCollection.fetch(params2).then(function(data){
//data has model/collection
});
}
当加载集合时,会发生同步/重置事件。听一听,secondCollection可以开始加载..