Javascript更新全局变量和提升

我有一个JavaScript函数,它使用ajax函数发布到php脚本和一个变量,用于确定结果是否返回true或false。 在PHP中,我通常将函数分配给这样的变量:

$insert_item = $process->insert_item($item_array);

If ($insert_item->error)
{
//error detected, do something
}

我一直无法用javascript来完成。 相反,如果我将一个函数分配给一个变量,我会得到一个[object object]返回值。 作为一个便宜的选择,我试图用一个全局变量来写任何错误:

var error = false;

function update_db(formInput) {
    $.post(action.php, formInput, function(data) {

        if (data != 0) {

            error = true

        }
    });

    return error;
}

var updateDb = update_db(form_data);

if (updateDb) {

    alert("error detected");

在这个例子中,尽管ajax函数将它更新为true,'error'也会返回false。 我已阅读所有有关JavaScript提升,但尚未找到解决方案。 有没有办法解决? 我的问题完全来自于ajax函数,我也尝试直接访问返回任何变量(就像我轻松地在PHP中执行),但我没有运气!

作为一个便笺,我发现有趣的是,我可以访问ajax函数中的'错误'(返回为false),但无法更改它。

链接地址: http://www.djcxy.com/p/96303.html

上一篇: Javascript updating global variables and hoisting

下一篇: Javascript function scoping and hoisting