0

我真的在这个问题上大吃一惊。我已经阅读了很多关于回调的内容,并且知道 ajax 是异步的,但我终其一生都无法找到如何取回一个值,以便稍后在 if 语句中使用。

$.ajax({
    url: 'http://'+document.domain+'/klanten/updateaddress.php',
    type: 'post',
    data: poststring,
    success: function(result) { 
    console.log("result = "+result);    
    callbacks.add(result);

    }
});

//this doesnt work because result is generated asynchonous. 
if(result == success){
//do something
}

console.log 完美地显示了我在 updateaddress.php 中生成的成功或错误,我真的需要使用 if 语句在成功与否之后执行一些代码。谁能向我解释一下回调系统在这种情况下是如何工作的?

谢谢!

4

1 回答 1

1

由于这是异步的,因此可能需要一些时间才能完成。您需要在稍后运行的回调中传递它:

$.ajax({
    url: 'http://'+document.domain+'/klanten/updateaddress.php',
    type: 'post',
    data: poststring,
    success: function(result) { 
        console.log("result = "+result);    
        callbacks.add(result);
        if(result == success){
            //do something
        }

    }
});

解释一下,我们不知道该if语句何时会发生,但它不会立即发生,因此我们告诉 javascript,当你准备好时运行以下命令。

谷歌 javascript 回调以获取更多信息

http://recurial.com/programming/understanding-callback-functions-in-javascript/

于 2013-10-24T14:23:01.593 回答