2010-05-18 2 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(); 
}; 

Мой вопроса, будет та часть, которая говорит //code here огнь только после всего остального, и их функции обратного вызова огня?JQuery, JavaScript и обратное время

//code here часть, похоже, срабатывает, и, похоже, какой-то вопрос времени.

+2

С 4,485 репутацией вы не знаете, как форматировать код в вопросе ?! –

+0

«Кажется, огонь», «проблема с синхронизацией» ... Можете ли вы быть более конкретным (показывая больше частей вашего кода)? –

+0

Какая из двух частей '// code here'? Все выполняется в последовательном порядке, поэтому, когда вы помещаете // код здесь выше 'callback();', он будет выполнен * перед * 'обратным вызовом'. –

ответ

1

Вы фактически не используете callback в любом месте Some.Thing, поэтому нельзя сказать. Но да, вообще, если что-то действительно не звонитcallback, код внутри него не выполняется. Он оценивается (анализируется), но не выполняется.

0

Это невозможно определить из кода, который вы указали.
Метод callback может либо быть назван в то время как на том же самом стеке, или его исполнение может быть отложено из-за AJAX или SetTimeout используется (асинхронный).

Если отложить, то он будет вызван только после завершения основного метода, и поток вернется в режим ожидания.