У нас есть скрипт, который загружает некоторые данные с сервера.
'use strict';
let data; // Here will be stored data from server
let url = '...'; // Here some correct URL
(async () => {
let response = await fetch(url); // Load response
data = await response.text(); // Load full data and save as text
// Some work with data from server
})();
// The enormous script below
В asyn c IIFE fetch()
создает новое обещание, а последнее отправляется в очередь для микрозадачи . И он выскочит из этой очереди только после выполнения полного скрипта. Понятно, что такое поведение является причиной для использования обещаний.
ВОПРОС:
Будет ли загрузка данных go параллельной выполнению кода JavaScript, который находится ниже IIFE, а чем будут выполнять задачи (обещания) из очереди микрозадач ? Или вначале выполнит код JavaScript, который находится ниже IIFE, затем данные будут загружены с сервера и, наконец, выполнят микротрубы?