function first(){
console.log(\'first\')
}
function second(){
console.log(\'second\')
}
let interval = async ()=>{
await setInterval(first,2000)
await set
You have a few problems:
setInterval()
is meant to call the callback multiple times, Promises do not support this case well.setInterval()
, nor the more appropriate setTimeout()
return Promises, therefore, await
ing on them is pointless in this context.You're looking for a function that returns a Promise which resolves after some times (using setTimeout()
, probably, not setInterval()
).
Luckily, creating such a function is rather trivial:
async function delay(ms) {
// return await for better async stack trace support in case of errors.
return await new Promise(resolve => setTimeout(resolve, ms));
}
With this new delay
function, you can implement your desired flow:
function first(){
console.log('first')
}
function second(){
console.log('second')
}
let run = async ()=>{
await delay(2000);
first();
await delay(2000)
second();
}
run();