Javascript и событийность, асинхронность, setTimeout
Javascript - событийно-ориентированный язык программирования.
function first() {
console.log('first');
}
function second() {
setTimeout(function() {
console.log('second');
}, 1000);
}
second()
first()
First - синхронная функция. Second - синхронная функция, в которой находится асинхронная функция, выполнение которой завершиться после одной секунды.
Вывод:
first
second
Почему, если first и second синхронные функции, первой завершает свою работу first?
*Является ли это особенностью языка программирования и его архитектуры, строения и работы? (или той же самой функции setTimeout).
Ответы (1 шт):
В setTimeout создается асинхронная функция(через которую выводится second после 1 секунды), как ты сам и написал - она асинхронна, другими словами: она уходит на второй план ждать 1 секунду, когда на первом first(функция)
По цыфоркам = шагам, код выглядит так:
0 (()=>{ // "main"
0.1 const first=()=>{
5 console.log('first');
};
0.2 const second=()=>{
2 setTimeout(()=>{
7 console.log('second');
}, 1000);
3
};
1 second();
4 first();
6 // some
})();
Тебе нужно идти и читать про event loop, вот хорошее видео на тему, правда на английском