Javascript 将参数从函数传递到其回调函数

Javascript 将参数从函数传递到其回调函数,javascript,jquery,Javascript,Jquery,这是我的密码: 首先,程序的执行在这里: refreshTree(function() { $.ajax({ type: "POST", url: "/ControllerName/MethodName1", success: function (data) { refresh(); }

这是我的密码:

首先,程序的执行在这里:

refreshTree(function() {
            $.ajax({
                type: "POST",
                url: "/ControllerName/MethodName1",
                success: function (data) {
                    refresh();
                }
            });
        });
以下是
refreshTree()
的定义:

下面是
refresh()
方法:

function refresh() {
    if (isOk) {
        //do something
    }
}

问题是,我不知道如何在
refresh()
中获取
isOk
变量。是否有方法将变量发送到
refresh()
,而不将其作为全局变量?

您可以在此处的闭包中捕获它:

refreshTree(function(isOk) {
    $.ajax({
        type: "POST",
        url: "/ControllerName/MethodName1",
        success: function (data) {
            refresh(isOk);
        }
    });
});
把它传过来:

function refreshTree(callback) {
    var isOk = true;
    $.ajax({
        type: "GET",
        url: "/ControllerName/MethodName2",
        success: function(data) {
            if (data == 'True') {
                isOk = false;
            }
            callback(isOk);
        }
    });
}
在这里:

function refresh(isOk) {
    if (isOk) {
        //do something
    }
}

您可以在此处的闭包中捕获它:

refreshTree(function(isOk) {
    $.ajax({
        type: "POST",
        url: "/ControllerName/MethodName1",
        success: function (data) {
            refresh(isOk);
        }
    });
});
把它传过来:

function refreshTree(callback) {
    var isOk = true;
    $.ajax({
        type: "GET",
        url: "/ControllerName/MethodName2",
        success: function(data) {
            if (data == 'True') {
                isOk = false;
            }
            callback(isOk);
        }
    });
}
在这里:

function refresh(isOk) {
    if (isOk) {
        //do something
    }
}

只需将其作为参数传递:

refreshTree(function(status) {
        $.ajax({
            type: "POST",
            url: "/ControllerName/MethodName1",
            success: function (data) {
                refresh(status);
            }
        });
    });
refreshTree()函数:

function refreshTree(callback) {
var isOk = true;
$.ajax({
    type: "GET",
    url: "/ControllerName/MethodName2",
    success: function(data) {
    var isOk=true;
        if (data == 'True') {
            isOk = false;
        }
        callback(isOk);
    }
});
}

Refresh()方法:


只需将其作为参数传递:

refreshTree(function(status) {
        $.ajax({
            type: "POST",
            url: "/ControllerName/MethodName1",
            success: function (data) {
                refresh(status);
            }
        });
    });
refreshTree()函数:

function refreshTree(callback) {
var isOk = true;
$.ajax({
    type: "GET",
    url: "/ControllerName/MethodName2",
    success: function(data) {
    var isOk=true;
        if (data == 'True') {
            isOk = false;
        }
        callback(isOk);
    }
});
}

Refresh()方法:


“是否有方法将变量发送到refresh(),而不将其作为全局变量?”只需将值作为参数传递给回调。定义回调/函数以接受参数。为什么不能将其作为参数传递给
refresh
函数?“是否有方法将变量发送到refresh(),而不将其作为全局变量?”只需将值作为参数传递给回调。定义回调/函数以接受参数。为什么不能将其作为参数传递给
refresh
函数?