请教一个问题:我有一个方法:
request.postandAlert = function (url, prarms, callBackFun) {
$.ajax({
type: "post",
url: url,
data: prarms,
success: successFun,
error: errorFun,
contentType: "application/json",
});
}
var successFun = function (result, a, b, c) {
}
请问如何把callBackFun作为参数,传入到successFun方法中去?
在 JavaScript 中,当你想将一个函数作为参数传递给另一个函数,并在回调函数内部调用这个参数函数时,可以通过定义一个闭包来实现。你可以将 callBackFun
作为参数传入 successFun
中并在 successFun
中调用它。
以下是代码的修改示例,展示了如何把 callBackFun
作为参数传入 successFun
方法中:
request.postandAlert = function (url, params, callBackFun) {
$.ajax({
type: "post",
url: url,
data: params,
success: function (result, a, b, c) {
successFun(result, a, b, c, callBackFun); // 将 callBackFun 作为参数传递
},
error: errorFun,
contentType: "application/json"
});
}
var successFun = function (result, a, b, c, callBackFun) {
console.log(result); // 处理 Ajax 返回的结果
// 调用回调函数,传入需要的参数
if (typeof callBackFun === 'function') {
callBackFun(result, a, b, c);
}
}
// 示例调用
request.postandAlert('/api/example', JSON.stringify({ key: 'value' }), function (result, a, b, c) {
console.log('Callback function called!', result, a, b, c);
});
嵌套的成功回调:
.ajax
的 success
回调中,调用 successFun
时传入 callBackFun
作为最后一个参数。在 successFun
中调用回调:
successFun
中检查 callBackFun
是否为函数,然后调用它并将需要的参数传递给它。示例调用:
request.postandAlert
时,最后一个参数就是你的回调函数,它会在 successFun
内部被调用。通过这种方式,你能够在 successFun
中访问到 callBackFun
,并可以根据需求来决定何时以及如何调用它。这种灵活性使得你的 Ajax 请求处理更具可扩展性和解耦性。
直接传 callBackFun
即可
function callBackFun() {
console.log('callBackFun');
}
var successFun = function (result, a, b, c, callback) {
callback();
}
successFun('result', 'a', 'b', 'c', callBackFun);
这种需求?
request.postandAlert = function (url, prarms, callBackFun) {
$.ajax({
type: "post",
url: url,
data: prarms,
success: (successResult) => successFun(successResult, callBackFun, 'b', 'c'),
error: errorFun,
contentType: "application/json",
});
}
var successFun = function (result, a, b, c) {}