Learn how to write a promise based delay function and then use it in async await setTimeout
to see how much it simplifies code over
.
Lets say you want to call a function after 1s, 2s, 3s. You can use
setTimeout
, or you can wrap it up into a simple delay function that works with async/await const delay = (ms) => new Promise(res => setTimeout(res, ms));
const runAsync = async (cb) => {
await delay(100);
cb('1s')
await delay(1000);
cb('2s')
await delay(1000);
cb('3s')
}
runAsync((m) => { console.log(m)})
or normal promise:
const delay = ms => new Promise(res => setTimeout(res, ms));
const runAsync = cb => {
Promise.resolve()
.then(() => {
cb("1s");
return delay(1000);
})
.then(() => {
cb("2s");
return delay(1000);
})
.then(() => {
cb("3s");
return delay(1000);
});
};
runAsync(m => {
console.log(m);
});