我使用$.ajax()
中的JQuery
方法来执行一些POST请求,并且在其error: function(jqXHR, textStatus, errorThrown) { ... }
回调中,我想实现一个带超时的简单重试机制,例如
timeout = window.setTimeout(function() {
$.ajax(myReqOptions);
}, 3000);
myReqOptions
这里需要是我在$.ajax()
中定义的选项对象才能使其工作。除了在调用超时之前设置临时变量之外,是否有一种方便的方法来引用此对象,如下所示:
myReqOptions = this;
timeout = window.setTimeout(function() {
$.ajax(myReqOptions);
}, 3000);
this
这里指的是error
回调的所有者,这是我在$.ajax()
中定义的对象。
答案 0 :(得分:1)
临时变量很好。要稍微缩短通话时间,您可以使用bind
function method:
timeout = window.setTimeout($.ajax.bind($, this), 3000);
或者,为了与旧浏览器(不使用ES5垫片)兼容,使用$.proxy
:
timeout = window.setTimeout($, "ajax", this), 3000);