2011-03-01 3 views
4

J'ai une question, je pense que la réponse sera simple, mais je ne peux pas trouver vraiment ...Faites quelque chose après la fonction est terminée

J'ai une fonction qui crée du contenu avec ajax. Une fois la fonction terminée, je veux faire quelque chose avec le contenu créé. Pour ce faire, j'ai besoin d'attendre que tout le contenu soit créé avant de pouvoir faire quelque chose avec.

Ce que je préfère est quelque chose comme ceci:

viewAllAccounts(function() { 
    //do something 
}); 

ou

viewAllAccounts().queue(function() { 
    // do something 
}); 

Mais biensur cela est ne va pas travailler :)

Je ne veux pas toucher la fonction viewAllAccounts, car elle est utilisée plusieurs fois dans mon application.

Existe-t-il un moyen simple de faire quelque chose après la fin d'une fonction, sans modifier la fonction elle-même?

Merci d'avance! Lorsque vous appelez des appels ajax avec jquery, il y a un tas de gestionnaires qui se déclenchent lorsque l'appel ajax est terminé.

+0

l'ajout d'un appel à une autre fonction (qui ne soemthing) juste avant le retour ',' est appelé 'viewAllAccounts'? –

Répondre

3

Vous devriez vous accrocher à ceux-là. Jetez un oeil à voir à

http://api.jquery.com/jQuery.ajax/

en particulier les propriétés « succès » et « erreur ». Il suffit de définir des fonctions pour celles-ci et elles seront appelées lorsque la requête sera terminée.

2

Car si vous ne voulez pas perdre des centaines d'octets et un tas de millisecondes sur jQuery *:

Vous pouvez créer une seconde fonction:

function viewAllAccountsWithFinishingFunction(func) { 
    viewAllAccounts(); 
    return func(); 
} 

appeler ensuite:

viewAllAccountsWithFinishingFunction(function() { 
    //do something 
}); 

* J'aime jQuery, mais je l'utilise pour seulement une fonctionnalité parmi des centaines a, je ne le trouve pas nécessaire.

+0

Je suis designer et cela me semble génial. –

Questions connexes