gpt4 book ai didi

ajax - 带参数的 jQuery Promise 回调

转载 作者:行者123 更新时间:2023-12-01 01:09:14 24 4
gpt4 key购买 nike

我试图弄清楚如何将参数传递给 jQuery 的 Promise 对象触发的回调函数。我的方法调用 ajax,然后调用 Promise 方法,如下所示:

var formObject = {
call : function(thisForm, thisUrl, thisArray, thisCallback) {
"use strict";
var thisMethod = thisForm.attr('method').toUpperCase();
var thisPromise = $.ajax({
type : thisMethod,
url : thisUrl,
dataType : 'json',
data : thisArray,
cache : false
});
thisPromise.done(thisCallback(data, textStatus, jqXHR));
thisPromise.fail(formObject.topError(jqXHR, textStatus, errorThrown));
}
};

done()和fail()方法中的参数不正确 - 但这正是我想要弄清楚的。

最佳答案

不需要提供额外的闭包 - 下面的行应该可以正常工作:

thisPromise.done(thisCallback);
thisPromise.fail(formObject.topError.bind(formObject));

done 回调将传递由 $.ajax 提供的 data、textStatus、jqXHR 参数。这一行只是直接注册提供的回调函数。

fail 回调同样会获得正确的参数,只不过我使用了 .bind此处确保 this 正确设置为 formObject。如果要在 ES5 之前的浏览器上使用此代码,只需为 .bind 安装一个填充程序 - 上面链接的 Mozilla 网站上有一个填充程序。

关于ajax - 带参数的 jQuery Promise 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11824209/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com