existe-t-il un moyen de quitter une fonction, en fonction du résultat d'un Par exemple, dans la fonction ci-dessous, obtenir la demande code>. hi code>, si le Obtenir CODE> Résultats dans Data CODE>, où DATA === '1' code>, je veux quitter la fonction. P> 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'
}
4 Réponses :
Une chose que vous pouvez faire est d'avoir une variable de drapeau. Attribuez-le à vrai ou faux, selon si vous souhaitez quitter ou non.
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'
...
}
Faire un appel Ajax asynch code> peut ne pas être la meilleure solution. Il bloquera la demande de la durée de l'appel AJAX
À moins que l'async faux, la variable FALG ne peut pas attraper la valeur de retour d'Ajax. Mais je pense aussi que je ferais mieux de trouver une autre solution
Je pense que la solution peut être quelque chose comme ceci si une fonction AJAX, vous devez toujours travailler avec des fonctions de rappel. Si vous faites une fonction AJAX synchrone, le navigateur sera bloqué pendant la durée de l'appel Ajax. Ce qui signifie que l'application restera non réactive pendant la durée de l'appel. P> p>
Désolé, une copie erreur je pense, je vais le supprimer
Créer une variable de drapeau global, je pense travaillerait le meilleur. Testé et fonctionnant !!
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'
...
}
Vous devriez pouvoir retourner false pour simuler "sortie".
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'
...
}
Je pense que c'est l'une des meilleures réponses. Cela fonctionne et c'est simple.