Показать сообщение отдельно
  #1 (permalink)  
Старый 29.10.2020, 23:38
Интересующийся
Отправить личное сообщение для vlad_kl Посмотреть профиль Найти все сообщения от vlad_kl
 
Регистрация: 16.06.2020
Сообщений: 22

Вопрос про async/await
Доброго времени суток, уважаемые знатоки.
Столкнулся с такой проблемой
Ниже простой код.
Первая функция num10 явно возвращает промис, т.к. там new Promise
Вторая функция num11 тоже возвращает промис, т.к. обёрнута в async.
https://learn.javascript.ru/async-await

Вопрос:
почему в третьей функции
* await num10() - работает КАК ПОЛОЖЕНО (браузер ждёт выполнения функции num10, консолит то, что она возвращает и идёт дальше)
* await num11() - НЕ РАБОТАЕТ (браузер не дожидается выполнения этой функции, её результат консолится в самом конце).

Почему так? Ведь обе функции num10 и num11 вроде как промисы.
Почему одно работает, другое нет.

Никак в толк взять не могу.
Буду очень благодарен за ваши ответы
Если вдруг где-то туплю и вопрос совсем глупый - не судите строго. Не ошибается тот, кто ничего не делает


function num10 () {
    return new Promise((resolve, reject)=> {
        setTimeout(()=>{
            resolve(10*10)
        }, 3000); 
    }).then(
        value => console.log(value),
    );
}


async function num11 () {
    setTimeout(()=> {
        let num = 11 * 11;
        return console.log(num);
    }, 3000);
}


async function waitCount() {
    console.log('1');
    console.log('2');
    await num10();
    console.log('3');
    await num11();
    console.log('4');
}

waitCount();
Ответить с цитированием