2010-05-18 4 views
0
var blah = Some.Thing(data, function(a,b) { 
    // code here 
}); 

Some.Thing = function(data, callback) { 

    if(...) { 
    var a = Other.Thing(data, function() { 
     // code here 

     callback(); 
     return; 
    });  
    } 

    callback(); 
}; 

Ma question est, sera la partie qui dit //code here feu que après tout le reste et leur feu callbacks?jquery, javascript et le calendrier rappel

La partie //code here semble s'allumer, et il semble y avoir un problème de synchronisation.

+2

Avec 4 485 rep, vous ne savez pas comment formater le code dans une question ?! –

+0

"Semble tirer", "timing question" ... Pouvez-vous être un peu plus spécifique (en montrant plus de parties de votre code)? –

+0

Lequel des deux composants '// code here'? Tout est exécuté dans un ordre séquentiel, donc quand vous mettez '// code here' au dessus de' callback(); ', il sera exécuté * avant *' callback'. –

Répondre

1

Vous n'utilisez pas réellement callback n'importe où dans Some.Thing, il est donc impossible de le dire. Mais oui, généralement, à moins que quelque chose appellecallback, le code à l'intérieur n'est pas exécuté. Il est évalué (analysé), mais pas exécuté.

0

Cela est impossible à dire à partir du code que vous avez fourni.
Le procédé callback peut soit être appelé tandis que sur la même pile, ou son exécution peut être différée due à Ajax ou setTimeout utilisé (asynchrone).

Si elle est différée, elle ne sera appelée qu'une fois la méthode principale terminée et le thread retournant au repos.