Вы получите undefined сразу.
Понятно, что вы пытаетесь написать функцию sleep()
asyn c, но помните, что setTimeout - это вызов функции syn c с функция обратного вызова будет выполнена в заданное время, поэтому, пока вы выполняете test()
, вызов будет выполняться до конца и return undefined
, поскольку у вас нет оператора возврата в теле функции, который будет передан вашему .then()
Правильный способ сделать это - вернуть обещание, которое будет разрешено через заданное время, которое продолжит вызов then
.
async function sleep(time){
return new Promise((resolve,reject) => {
setTimeout(() => {
resolve("echo str")
},time)
})
}
sleep(5000).then((echo) => console.log(echo))
вкратце
const sleep = async time => new Promise(resolve=>setTimout(resolve,time))