繁体   English   中英

Javascript:将参数传递给回调调用的方法

[英]Javascript: Passing parameters to a method called by callback

因此,我在表单上有一个保存按钮,该按钮上有一个回调函数,该函数会关闭并在尝试保存表单之前检查用户是否仍通过身份验证,然后该回调函数会调用实际的save方法来验证表单并保存如果我们通过了身份验证,或者如果没有通过身份验证,则会弹出登录框。 我的问题是此save方法需要接受回调的结果(是true还是false)和一些需要验证的额外参数。

function saveButton_Click(sender, eventArgs, var1, var2, var3)
{
    var authenticated = myCallbackFunction(performSave);
}

function performSave(authenticated, var1, var2, var3)
{
    if (authenticated)
    {
        //do some validation and save
    }
    else
    {
        showLoginWindow();
    }
}

这是我到目前为止获得的代码,该代码成功关闭并执行回调并将结果传递给performSave,但是显然它没有传递我的额外变量,因此我所有的验证工作都失败了。 我尝试了以下方法:

var authenticated = myCallbackFunction(performSave(authenticated, var1, var2, var3));

但这似乎只是导致回调被跳过和通过身份验证,var1,var2等始终以未定义的形式通过。 因此,如何将变量以及回调结果成功传递给performSave方法?

您可以使用局部函数范围来实现。

function saveButton_Click(sender, eventArgs, var1, var2, var3)
{
    myCallbackFunction(function(authenticated){
        performSave(authenticated, var1, var2, var3);
    });
}

尝试将声明和赋值分开,如下所示:

var authenticated = null;
authenticated = myCallbackFunction(performSave(authenticated, var1, var2, var3));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM