在JQuery Deferred对象(使用主干JS)我如何知道哪个请求失败?

时间:2012-06-05 17:58:43

标签: jquery backbone.js jquery-deferred

我尝试使用backboneJS:

$.when(cardsCollection.fetch(),series.fetch())
              .done(function(){
                cardsListView.series = series;
                cardsListView.template = _.template(CardsListTemplate);
                cardsListView.render();
            }).fail(function(){
                cardsListView.series = new Series({seriesID:0,seriesName:""});
                cardsListView.template = _.template(CardsListTemplate);
                cardsListView.render();
                });

我在示例中缺少失败的回调参数。 但是,我的目的是检查哪个提取失败,以及系列是否继续使用虚假数据。

是否可以使用JQuery进行修改?

1 个答案:

答案 0 :(得分:2)

您可以使用deferred.state()

 cardsCollectionPromise = cardsCollection.fetch();
 seriesPromise = series.fetch();
 $.when(cardsCollectionPromise, seriesPromise)
          .done(function(){
        // ...
        }).fail(function(){
            if (cardsCollectionPromise.state() === 'rejected') {
               // ...
            },
            else (seriesPromise.state() === 'rejected') {
              // ...
            }
            });