Callbacks de JavaScript: nem todos assíncronos
Muitos desenvolvedores de JavaScript presumem que todos os retornos de chamada em JavaScript são assíncronos, especialmente em situações específicas, como navegador- solicitações XHR baseadas e E/S de arquivo Node.js. No entanto, os ambientes de navegador e de nó diferem no tratamento da assincronicidade de retorno de chamada.
Ambiente do navegador
Em navegadores, a assincronicidade de retorno de chamada surge principalmente de solicitações XHR. Isso ocorre porque o objeto XHR do navegador tem como padrão a operação assíncrona, permitindo solicitações sem bloqueio. No entanto, as funções AJAX do jQuery fornecem um sinalizador "assíncrono" que pode ser definido como falso para impor solicitações síncronas.
Ambiente Node.js
No Node.js, assincronicidade em retornos de chamada normalmente decorre de operações envolvendo E/S de arquivo, process.nextTick, setTimeout ou setInterval. Ao executar chamadas de banco de dados com bibliotecas como MongoDB/Mongoose, essas operações envolvem o loop de eventos V8 devido à sua natureza de bloqueio inerente. A maneira padronizada de rotular retornos de chamada assíncronos em JavaScript pode dificultar o discernimento de quais realmente são. Os desenvolvedores devem consultar a documentação ou examinar a implementação do código para determinar a assincronicidade.
Criando retornos de chamada assíncronos
Em versões anteriores do JavaScript, alcançar a assincronicidade exigia a utilização de funções fornecidas pelo host . No entanto, com a introdução de Promessas no ECMAScript 6, surgiu uma abordagem em nível de linguagem para a assincronicidade. Funções que retornam promessas garantem a execução assíncrona de retornos de chamada registrados por meio de then.
Concluindo, nem todos os retornos de chamada JavaScript são inerentemente assíncronos. Os ambientes de navegador e de nó lidam com a assincronicidade de maneira diferente, e determinar a assincronicidade do retorno de chamada requer revisão de documentação e exame de código. Embora as funções fornecidas pelo host ofereçam um meio de criar funcionalidades assíncronas, as Promises fornecem uma maneira padronizada e conveniente de obter assincronicidade em JavaScript.
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