是否有办法退出函数,具体取决于GET
请求的结果。
例如,在下面的函数hi
中,如果GET
导致data
,其中data === '1'
,我想退出该函数。
function hi () {
$.ajax({
url: "/shop/haveItem",
type: "GET",
success: function (data) {
if (data == '1') {
// exit hi() function
}
}
});
// some executable code when data is not '1'
}
我怎样才能完成这项工作?
答案 0 :(得分:9)
我认为解决方案可以是这样的
function hi () {
$.ajax({
url: "/shop/haveItem",
type: "GET",
success: function (data) {
if (data == '1') {
ifData1();
} else {
ifDataNot1()
}
}
});
}
function ifData1 () { /* etc */ }
function ifDataNot1 () { /* etc */ }
如果你有一个ajax函数,你应该总是使用回调函数。如果使ajax函数同步,则浏览器将在ajax调用期间被阻止。这意味着在通话期间应用程序将保持无响应状态。
答案 1 :(得分:1)
你应该能够返回false来模拟“退出”。
function hi()
{
$.ajax({
url: "/shop/haveItem",
type: "GET",
async:false,
success: function(data){
if(data == '1')
return false
}
});
//some executable code when data is not '1'
...
}
答案 2 :(得分:0)
你可以做的一件事是拥有一个标志变量。将其分配为true或false,具体取决于您是否要退出。
function hi()
{
var flag=false;
$.ajax({
url: "/shop/haveItem",
type: "GET",
async:false,
success: function(data){
if(data == '1')
flag=true;
}
});
if ( flag ) return;
//some executable code when data is not '1'
...
}
答案 3 :(得分:0)
创建一个全局标志变量我认为最好。经过测试和工作!!
window.flag = [];
function hi()
{
$.ajax({
url: "/shop/haveItem",
type: "GET",
async:false,
success: function(data){
if(data == '1')
flag = true;
}
});
if (flag) {
return false;
}
//some executable code when data is not '1'
...
}