Почему 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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