2015-07-23 4 views
9

Если бы у меня был дебат с моим коллегой по этому вопросу, мы должны были решить некоторые проблемы с асинхронным/синхронизирующим процессом. Однако он поднял еще один вопрос, на который я не мог найти определенного ответа.

Предположим, что для каждого цикла ($ .each) существует простой цикл, где для каждой итерации я вызываю функцию, заданную в глобальной области. Выполняется ли функция синхронно или асинхронно? Предположим, что нет Ajax, поэтому функция выполняет полностью синхронный, хотя и просто исполняемый. Другими словами, я задаюсь вопросом, блокирует ли вызов функции внутри итерации или нет.

Спасибо!

+1

Не JavaScript еще однопоточных? – Marvin

+1

так, какая сторона этой ставки ... [кашель ... немного] .. * дебаты * вы были на ... плательщике ... плательщике? – charlietfl

+0

Получатель конечно. ;) – adi518

ответ

3

Все в JavaScript является синхронным. Если вы не используете тайм-ауты или обратные вызовы, все будет «синхронно».

Простой пример должен доказать это.

var data = [1,2,3]; 
var results = []; 
$.each(data, function(d) { results.push(d); }); 

console.log(results); // [1,2,3] 
+0

Итак, вы, ребята, говорите, что итерация не будет продолжаться до тех пор, пока вызываемая функция не будет выполнена, правильно? – adi518

+0

@asde это правильно – Strelok

5

Это синхронно. Вы можете определить, задана ли точка останова после цикла и внутри цикла. Точка останова в цикле будет удалена до одной после цикла.

Это предполагает, что контрольные точки будут поражены в исполнении, объект/массив быть накинут имеет элементы и т.д.

Смежные вопросы