"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo manejar devoluciones de llamadas asincrónicas usando Await?

¿Cómo manejar devoluciones de llamadas asincrónicas usando Await?

Publicado el 2024-11-11
Navegar:369

How to Handle Asynchronous Callbacks Using Await?

Manejo de devolución de llamada asincrónica con Await

En ciertos escenarios, mientras se usan devoluciones de llamada como:

test() {
  api.on( 'someEvent', function( response ) {
    return response;
  });
}

es posible que necesites incorporar asincronicidad. Para que esta función sea asincrónica y se use en espera, primero debe asegurarse de que la función de devolución de llamada (algúnEvento) devuelva una Promesa. Esto se debe a que las funciones asíncronas dependen de Promesas para completar operaciones asincrónicas.

Una versión revisada de api.on():

function apiOn(event) {
  return new Promise(resolve => {
    api.on(event, response => resolve(response));
  });
}

Con esta función actualizada, ahora puede modificar test() para que sea una función asincrónica:

async function test() {
  return await apiOn( 'someEvent' );
}

Sin embargo, las funciones asincrónicas también devuelven Promesas, por lo que el valor del resultado real de test() es una Promesa que se puede resolver dentro de otra función asincrónica:

async function whatever() {
  // snip
  const response = await test();
  // use response here
  // snip
}
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3