Это немедленно вернет решенное значение Promise
.
В идеале
async uselessWait(){
return setTimeout(() => {
return ("success"); // and return Promise.resolve("success");
}, 1000)
}
Но setTimeout
не возвращает обещание, поэтому вы не можете этого сделать.
Здесь 'взять setTimeout, который делает.
setTimeoutPromise = (fn, delay) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
try {
const ret = fn()
resolve(ret)
} catch (e) {
reject(e)
}
}, delay)
})
}
setTimeoutPromise(() => {
console.log('ok')
}, 1000)
Итак, для вашего примера.
async uselessWait(){
return setTimeoutPromise(() => {
return ("success"); // and return Promise.resolve("success");
}, 1000)
}
Теперь асинхронная функция возвращает обещание, которое разрешается (или отклоняется, если ваш обратный вызов сгенерирован)
Вы могли бы также ждать вместо возвращения.
async uselessWait(){
await setTimeoutPromise(() => {
return ("success"); // and return Promise.resolve("success");
}, 1000)
}