¿Cómo puedo consolar a 1234 en esta función? usando await o async. Ahora registra 1243. Debería esperar antes del 3 y luego registrar el 4.
function Call(){ console.log('1'); console.log('2'); setTimeout(()=>console.log('3'),1000); console.log('4'); } Call();Como se sugiere en los comentarios, la clave aquí es crear un setTimeout basado en promesas como se describe aquí :
const delay = ms => new Promise(resolve => setTimeout(resolve, ms)); Luego haga que su función sea async y await el tiempo de espera:
async function call(){ console.log('1'); console.log('2'); await delay(1000); console.log('3'); console.log('4'); } call();Normalmente, desea manejar los errores, pero sabemos que lo anterior no puede arrojar ninguno, así que...
const delay = ms => new Promise(resolve => setTimeout(resolve, ms)); async function call(){ console.log('1'); console.log('2'); await delay(1000); console.log('3'); console.log('4'); } call();cómo console.log1234 de forma síncrona
Tenga en cuenta que lo anterior hace que la lógica de la función sea síncrona, pero el código no se ejecuta de forma síncrona. la call regresa a partir de await y luego se reanuda más tarde cuando el temporizador se dispara y establece la promesa.