"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como lidar com a conclusão de retorno de chamada assíncrona em Node.js?

Como lidar com a conclusão de retorno de chamada assíncrona em Node.js?

Publicado em 2024-11-03
Navegar:757

How to Handle Asynchronous Callback Completion in Node.js?

Tratamento de retorno de chamada assíncrono em Node.js

Em Node.js, ao lidar com retornos de chamada assíncronos, é crucial compreender a natureza fundamentalmente não bloqueadora da plataforma . Este artigo aborda um desafio comum: como fazer uma função aguardar a conclusão de um retorno de chamada.

Considere a seguinte função simplificada:

function(query) {
  myApi.exec('SomeCommand', function(response) {
    return response;
  });
}

O objetivo é chamar myApi.exec e retornar a resposta recebida no callback. No entanto, esse código retorna imediatamente, tornando-o ineficaz.

A solução orientada a eventos

A arquitetura orientada a eventos do Node.js determina que a "boa" maneira de lidar com retornos de chamada assíncronos é não esperar. Em vez disso, as funções devem aceitar um parâmetro de retorno de chamada que será invocado após a conclusão da operação. O chamador não deve esperar um valor de "retorno" tradicional, mas sim fornecer um retorno de chamada para processar o resultado.

function(query, callback) {
  myApi.exec('SomeCommand', function(response) {
    // additional processing...

    callback(response); // This "returns" the value to the caller
  });
}

Uso:

myFunction(query, function(returnValue) {
  // Use the return value here
});

Nesta abordagem, a função não bloqueia e permite que o loop de eventos continue processando outras tarefas. Quando o retorno de chamada é invocado, a função fornecida trata o resultado de forma assíncrona.

Declaração de lançamento Este artigo foi reimpresso em: 1729504094 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3