Declaramos una funcion que recive un callback y un parametro, y retornamos una promesa que contiene un setTimeout que corre el callback y al terminar resuelve la promesa.
const setAsyncTimeout = (cb, timeout = 0) => new Promise(resolve => {
setTimeout(() => {
cb();
resolve();
}, timeout);
});
Ahora solo corre la funciona sÃncrona e ingresa el callback y si quieres el tiempo
const doStuffAsync = async () => {
await setAsyncTimeout(() => {
// Do stuff
}, 1000);
await setAsyncTimeout(() => {
// Do more stuff
}, 500);
await setAsyncTimeout(() => {
// Do even more stuff
}, 2000);
};
doStuffAsync();