@ms-config

Непонятен порядок выполнения функций в js?

let data = [];

        async function getData() {
            let result = await fetch(' http://www.filltext.com/?rows=32&id={number|1000}&firstName={firstName}&lastName={lastName}&email={email}&phone={phone|(xxx)xxx-xx-xx}&address={addressObject}&description={lorem|32}');
            if (result.ok) {
                data.push(...await result.json());
            } else {
                throw new Error
            }
            console.log('1');
        }

        let id__header = document.querySelector('.id__header'),
            firstName = document.querySelector('.firstName'),
            lastName = document.querySelector('.lastName'),
            email = document.querySelector('.email'),
            phone = document.querySelector('.phone');

        function createDataCells(arr) {
            for (let i = 0; i < arr.length; i++) {
                id__header.insertAdjacentHTML('beforeend', `<div>${arr[i].id}</div>`);
                firstName.insertAdjacentHTML('beforeend', `<div>${arr[i].firstName}</div>`);
                lastName.insertAdjacentHTML('beforeend', `<div>${arr[i].lastName}</div>`);
                email.insertAdjacentHTML('beforeend', `<div>${arr[i].email}</div>`);
                phone.insertAdjacentHTML('beforeend', `<div>${arr[i].phone}</div>`);
            }
            console.log('2');
        };

            getData();

            setTimeout(() => createDataCells(data), 0);

Почему createDataCells выполняется раньше getData, если getData это микрозадача, которая должна выполнится перед setTimeout
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
IvanU7n
@IvanU7n
nothing interesting here
она и вызывается раньше, но т.к. в ней есть await, то окончание будет когда получится

чтобы оно работало как нужно, можно сделать что-то типа getData().then(() => createDataCells(data));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы