假设我有一个包装 jQuery ajax 方法的方法:
function GetJson(url, completeCallback, alwaysCallback, failCallback) {
var newUrl = location.protocol + "//" + location.host + url;
$.getJSON(newUrl).done(function (result) {
if (typeof completeCallback == "function") {
completeCallback(result);
}
}).fail(function (jqxhr, textStatus, error) {
if (typeof failCallback == "function") {
failCallback(result);
} else {
alert("Request failed for " + url + " textStatus:" + textStatus + " Error:" + error);
}
}).always(function () {
if (typeof alwaysCallback == "function") {
alwaysCallback();
}
}); }
我调用了 DoSomething 方法,该方法在内部调用 GetJson。我想将 GetJSON 回调的结果作为 DoResume 的第一个参数传递;其余参数应从方法签名传递。
function DoSomething(a, b, c, id) {
var url = '/MyController/GetData?id=' + id;
GetJson(url, DoResume(this.Result, a, b, c)); }
function DoResume(result, a, b, c) { }
我尝试使用此关键字来实现此目的,但结果未分配。
最佳答案
您需要传递一个函数而不是其调用的结果
GetJson(url, function(result){
DoResume(result, a, b, c);
});
关于javascript - 使用参数扩展回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38833114/