Синхронные циклы JavaScript
Я поражал голову асинхронному поведению JavaScript при масштабировании функций от моих тестовых данных до производственной работы.
у меня есть for
Цикл, который, как я знаю, будет варьироваться в сотни тысяч, Узел остановит for
цикл и вернуться к нему, или я могу безопасно предположить, что Node выполнит цикл до завершения, прежде чем вернуть мою функцию?
Вот петля в вопросе:
function fixData(dataset, blockcount){
for (var i = 0, len = dataset.length; i < len; i++) {
var obj = dataset[i];
obj._id = obj.name;
obj.expires = blockcount + obj.expires_in;
delete obj.expires_in;
}
return dataset;
}
1 ответ
Решение
Циклы являются синхронными в Node.js и JavaScript, и синхронный код всегда выполняется до конца. Поэтому, если вы не выполняете вызовы асинхронных функций, вы можете быть уверены, что ваш код не будет прерван до его завершения.