我有像这样的代码
function check(parameters){
some code;
$.post('/url', function(data) {
//and here I want if data==0 return false from function check
//if no go and skip to instruction 1
});
instruction 1;
}
我希望以后在我的程序中使用if(check(params)== 0)但它似乎不起作用。 我怎么能在java脚本中这样做?如果($。post ... == 0)我需要做什么? 最好的问候
答案 0 :(得分:1)
Ajax是异步的,如果你想要同步,你可以使用ajax方法中的设置。使用异步请求,您可以提供回调函数。然后在ajax消息返回时运行回调函数。
你可以这样调用你的检查函数,在params之后使用回调函数。
check(params, function(data) {
if (data == 0) {
// do something
} else {
// do something else
}
});
当ajax消息返回时,在check
中运行回调。
function check(parameters, callback){
some code;
$.post('/url', function(data) {
if (typeof callback === 'function') {
callback(data);
}
}
}
答案 1 :(得分:0)
回调函数is not synchronous,意味着它将在以后被调用。所以你不能只去“指令1”,你需要的是你的回调检查数据是空的(或者你的应用程序逻辑要求的)然后调用另一个包含“指令1”的函数。换句话说,check()的调用者不能等待来自ajax调用的响应。