我真的在这个问题上崩溃了。我阅读了很多关于回调的信息,并且知道 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
}
控制台.log完美地显示了我在updateaddress中生成的成功或错误.php并且我确实需要使用if语句在成功与否后执行一些代码。谁能向我解释一下在这种情况下回调系统是如何工作的?
谢谢!
由于这是异步的,因此可能需要一些时间才能完成。您需要在稍后运行的回调中传递它:
$.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,当你准备好时运行以下命令。
Google JavaScript 回调以获取更多信息
http://recurial.com/programming/understanding-callback-functions-in-javascript/