在返回数据的AJAX调用上处理Jquery Promise

时间:2012-11-28 00:43:08

标签: ajax jquery-deferred

希望在jQuery AJAX调用上获得数据处理的示例。我的AJAX调用运行php代码,如果不成功则返回-1。我必须忽略ajax代码的返回承诺,而是创建并返回一个基于返回数据解析或失败的新延迟对象....出于某种原因我怀疑有一种方法可以实现这一点减少开销。目前的样本是:

   send_Data = function(send_data) {
      var dfd = $.Deferred();
      $.post(sendData.php", send_data), function(data) {
      })
      .success(function(data) {if(data==-1) dfd.fail();
                              } else {dfd.resolve(data);}
      .error(function(e){log_error()})
      return  dfd.promise();
   }

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您在提供的示例中犯了一些错误。这是我2美分的帮助

 myAjax = {
 ,dfd = $.Deferred();
,ajax: function () { $.ajax({
                             url: 'connectorURL'
                            ,type: "POST"
                            ,data: {
                                    ExpectedVariable: YouRDataVariable,                 
                            }
                            ,success: function(data){
                            if(data == '-1') {
                                this.dfd.fail();
                                } else {
                                this.dfd.resolve(data);
                                }
                            ,error: function(){
                            console.log('connector error',arguments);
                                }
                        });
                    }
}

$(document).ready(function(){
    myAjax.ajax();                         
});