Остановить выполнение функции jQuery - PullRequest
0 голосов
/ 10 ноября 2018

Я хочу, чтобы функция save проверила, установлен ли сеанс (с использованием другой функции), и остановила продолжение работы базовой функции, но, похоже, функция продолжается (не выполняется ниже):

//1. Base save function

$("#save").click(function (e) {				
  e.preventDefault();
  //step 0 check if logged in
  checksession();
  console.log("teststop"); //just for testing
  //steps x continue execution of session exists
});

//2. Session check function
function checksession(){	
    $.ajax({ 
	type: "GET",
	url:"xxxx/sessioncheck.php",
	dataType: "text",
	cache: false,
	success: function(data){
	    if(data == "no"){
		return;
            } else {} //continue	
        }
    });
}

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

Попробуйте это:

 $("#save").click(function (e) {    


  e.preventDefault();
  //step 0 check if logged in
  check();
if(check()==true){
continue;
}else{
stop
}
  console.log("teststop"); //just for testing
  //steps x continue execution of session exists
});

//2. Session check function
function check(){
var result=false;
    function checksession(){    
        $.ajax({ 
        type: "GET",
        url:"xxxx/sessioncheck.php",
        dataType: "text",
        cache: false,
        success: function(data){
            if(data == "no"){
            return;
                } else {
result=true;
} //continue    
            }
        });
    }
return result;

}

0 голосов
/ 10 ноября 2018

let checksession callback AJAX success будет функцией, которая выполняет операцию сохранения (или нет)

//1. Base save function

$("#save").click(function (e) {             
  e.preventDefault();
  //step 0 check if logged in
  checksession();
});


//2. Session check function

function checksession(){    
    $.ajax({ 
    type: "GET",
    url:"xxxx/sessioncheck.php",
    dataType: "text",
    cache: false,
    success: function(data){
            if(data == "no")
            {
                console.log( "stop" );
            } else {
                console.log( "continue" ); 
                doSave();
            }   
        }
    });
}


//3. Perform save operation

function doSave() {
    //
    // proceed with the save operation
    //
}
...