Para diferir la ejecución de una función por 1 segundo, envuelve la ejecución de una promesa dentro de una función y envuelve la resolución de la promesa en un setTimeout
El timer setTimeout() acepta tiempo en milisegundos (ms), de esta forma setTimeout(fn, 1000) le mencionará a JavaScript llamar a nuestra función fn
luego de 1 segundo.
function delay(timeInMs) {
return new Promise(resolve => setTimeout(resolve, timeInMs));
}
delay(1000).then(() => console.log('corre luego de 1 segundo'));
Tu podrías incluso envolver la llamada a delay
en una función asíncrona para usar async/await en lugar de then().
// timeInMs tomará el valor por defecto de 1000 si ningún valor es pasado
function delay(timeInMs = 1000) {
return new Promise(resolve => setTimeout(resolve, timeInMs));
}
test('mi asíncrono código', async () => {
// seteando recursos
await delay(100); // delayamos 100 milisegundos
// ejecutando expectativas
})