В коде есть небольшие ошибки. Я указываю их ниже.
- Вы должны написать решение в Обещании.
return new Promise((resolve) => resolve (setTimeout(()=>{cb()}, ms)));
Если вы хотите, чтобы
myfun
запускался после тайм-аута 1000 миллисекунд, вы должны вызвать функцию в первом параметре settimeout. Вот так
setTimeout(()=>{cb()}, ms);
Вот обновленный исходный код,
function sleep(cb, ms) {
return new Promise((resolve) => resolve (setTimeout(()=>{cb()}, ms)));
}
async function delayedGreeting() {
console.log("Hello");
await sleep(myfun, 1000);
console.log("World!");
}
function myfun() {
console.log("whatever");
}
delayedGreeting();
console.log("Goodbye!");
И правильный вывод в соответствии с реализацией, которую вы пытаетесь выполнить с кодом, должен быть таким,
Hello
Goodbye!
World!
whatever