Показать сообщение отдельно
  #2 (permalink)  
Старый 31.01.2021, 15:30
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,831

Сообщение от Konstantin81
Почему async функция, тело которой имеет setTimeout возвращает Promise в состоянии fulfilled еще до выполнения setTimeout?
Потому что вы возвращает идентификатор таймаута не ожидая его выполнения.

Сообщение от Konstantin81
Откуда берется значение Promise - '1' ?
Это сам идентификатор таймаута.

Сообщение от Konstantin81
Каким должен быть правильный код?
Наверное таким:
let out1 = document.querySelector('.out-1');

function setHtml(ms, out, text) {
    return new Promise(resolve => {
        setTimeout(() => resolve(out.innerHTML = text), ms);
    });
}

setHtml(2000, out1, 'Запуск №1').then(text => {
    console.log(text);
});
Ответить с цитированием