Помогите разобраться с основами JS
У меня есть вопрос по базовой концепции JavaScript. Чтобы понять преимущества Promise
и Async-Await
, я сначала написал обычный код, который должен выполняться строка за строкой.
Мне объяснили, что в традиционном коде, если одна строка занята каким-то процессом на несколько секунд, то остальные строки кода должны ждать. Я понимаю это так:
строка кода 1 // выполнена
строка кода 2 // выполнена
взаимодействие с сервером // ждет ответа от сервера
строка кода 3 // ждет
строка кода 4 // ждет
строка кода 5 // ждет
Чтобы имитировать эту задержку сервера, я использовал setTimeout(2000)
, но все равно вижу, что остальные строки выполняются нормально. Вот мой код:
ngAfterViewInit() {
console.log("привет");
console.log("как");
setTimeout(() => {
console.log("я ждал");
}, 2000);
console.log("дела");
console.log("друг");
}
Вывод:
привет
как
дела
друг
я ждал
Я ожидал, что “привет”, “как” напечатаются сначала, потом через 2 секунды “дела”, “друг” будут напечатаны. Где я делаю ошибку? Исправьте меня пожалуйста.