torna alle lezioni

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.