Jquery 主干错误处理获取多个集合

Jquery 主干错误处理获取多个集合,jquery,backbone.js,Jquery,Backbone.js,我正在使用undescore的invoke方法获取主干中的多个集合 var cols = [kf.Collections.invoices, kf.Collections.quotes, kf.Collections.bankaccounts, kf.Collections.invoicepaymentmethods]; var colsComplete = _.invoke(cols, 'fetch'); $.when.apply(null, colsComplete).then(callb

我正在使用undescore的invoke方法获取主干中的多个集合

var cols = [kf.Collections.invoices, kf.Collections.quotes, kf.Collections.bankaccounts, kf.Collections.invoicepaymentmethods];

var colsComplete = _.invoke(cols, 'fetch');
$.when.apply(null, colsComplete).then(callback);
我面临的问题是,即使由于API错误导致对特定集合的提取失败,它也会恢复对剩余集合的提取


如果我的API返回“UnAuthorized 401”,是否有任何方法可以停止提取其他集合?

可以使用相同下划线的
invoke
方法来中止失败回调中的所有承诺,从而实现最快和最简单的问题解决方案:

var cols = [kf.Collections.invoices, kf.Collections.quotes, kf.Collections.bankaccounts, kf.Collections.invoicepaymentmethods];

var colsComplete = _.invoke(cols, 'fetch');

$.when.apply(null, colsComplete).then(doneCallback, function () {
    _.invoke(colsComplete, 'abort'); 
});
这将对所有承诺调用abort方法。但我想您不需要对已经失败的承诺或已经完成的请求调用
abort
方法

在这种情况下,只需检查promise对象的
readyState
,并根据
readyState
值中止它