Delay with a promise
The built-in function setTimeout uses callbacks. Create a promise-based alternative.
The function delay(ms) should return a promise. That promise should resolve after ms milliseconds, so that we can add .then to it, like this:
function delay(ms) {
  // your code
}
delay(3000).then(() => alert('runs after 3 seconds'));function delay(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}
delay(3000).then(() => alert('Viene eseguita dopo 3 secondi'));È da notare che in questo task, resolve è chiamato senza argomenti. Non ritorniamo alcun valore da delay, ci assicuriamo solo del ritardo.