The quickest and easiest solution to your problem can be implemented using the same underscore method invoketo abort all promises when the callback fails:
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');
});
promises. , , abort promises .
readyState - readyState.