有什么办法可以“取消” promise.done()?

时间:2018-09-28 06:48:13

标签: javascript jquery ajax

这个想法是,每当服务器中发生某种情况时,我都希望浏览器将HTTP调用识别为成功,但仍不调用$ .ajax调用返回的延迟对象的done()函数。

为了解决这个问题,我正在考虑从服务器返回自定义HTTP代码(2XX,确保没有任何标准的HTTP成功代码)。 此代码将是通用的,并且遇到这种情况的所有服务器端调用都将返回此代码

现在,在我的JavaScript代码中,我想确保如果返回代码是我的自定义2XX,则不应调用promise.done方法。

我猜测类似的东西应该可以工作。

$.ajax({
    /* url parameters here */
    success: function (data, textStatus, jqXHR) {

      /*This code is to handle custom  return code 289
      * This code ensures that if there is an issue in getting data from api side
      * the actual promise.done() method is not called. because that would cause Javascript error*/
      if(jqXHR.status === 289){        
            // Stop promise.done from being executed
            // or override the promise.done function to something harmless  

        };
      }
     },
     error: function (jqXHR, textStatus, errorThrown) {

     },
     complete: function (options, status) {

     },
     timeout: 60000
});



是否可以通过标准方式“取消”被调用的promise.done方法?

0 个答案:

没有答案