Почему SetTimeout выполняется до получения.Javascript

Форум по Javascript
Anonymous
Почему SetTimeout выполняется до получения.

Сообщение Anonymous »

Я запускаю код ниже. Вывод, который я ожидал, был:
Start -> End -> While expires -> joke -> setTimeout< /code>
Однако вывод, который я на самом деле получаю:
Start -> End -> While expires -> setTimeout -> joke< /code>
Почему это происходит?
не должно быть напечатано «шутка» до «SetTimeout», поскольку обратные вызовы хранятся в очереди микротаски, которая имеет более высокий приоритет, чем очередь задач, где хранятся обратные вызовы SetTimeout?console.log("Start");

setTimeout(function cb() {
console.log("setTimeout");
}, 5000);

const apiUrl = "https://api.chucknorris.io/jokes/random";

fetch(apiUrl)
.then((response) => response.json())
.then((data) => {
const joke = data.value;
console.log(joke);
})
.catch((error) => {
console.error("Error:", error);
});

console.log("End");

let startDate = new Date().getTime();
let endDate = startDate;
while (endDate < startDate + 10000) {
endDate = new Date().getTime();
}

console.log("While expires");



Подробнее здесь: https://stackoverflow.com/questions/797 ... k-priority

Вернуться в «Javascript»