jquery承诺在ajax调用错误时返回

jquery承诺在ajax调用错误时返回,jquery,ajax,backbone.js,promise,Jquery,Ajax,Backbone.js,Promise,我使用主干来获取模型+jquery承诺来确保它被获取 我称之为函数 rippleidcollection.createIdList(param).then // do some stuff 当fetch触发成功时,这很有效,但当触发错误时,则不会执行上述函数的then部分(这是一个问题,因为我想触发一条错误消息) 以下是createdIdList函数的代码: createIdList: function(toresolves) { var self = this;

我使用主干来获取模型+jquery承诺来确保它被获取

我称之为函数

rippleidcollection.createIdList(param).then // do some stuff
当fetch触发成功时,这很有效,但当触发错误时,则不会执行上述函数的then部分(这是一个问题,因为我想触发一条错误消息)

以下是createdIdList函数的代码:

createIdList: function(toresolves) {
        var self = this;

        var xhrs = _.map(toresolves, function(toresolve,i) {
                var id = toresolve.id;
                var model = new RippleId({id:id}, address);
                var xhr = model.fetch({
                    success: function(model,response) {
                        self.add(model);
                    },
                    error: function(model, response) {
                        self.add(model);
                    }
                });       
            return xhr;     
        });

        var sync = $.when.apply(null, xhrs);
        return sync;
    }
因此,当(model.fetch)rippleidcollection.createIdList(param)成功时,//do some stuff将通过负载执行,但不会在触发错误时执行。我想要的是错误负载也被传递,这样我就可以管理错误消息…等等


我想我错过了一些基本的承诺,但我不确定是什么。谢谢你的帮助

然后
采用第二个参数来处理错误:

rippleidcollection.createIdList(param).then(function(result){
   // stuff to do on success
}, function(err){
   // deal with error case, your code for handling errors goes here.
});

请考虑更改后端以获取IDS的列表,并将它们添加到批处理中,这样会更有效,并且减少很多请求。p>