É .then(function(a){ return a; }) um No-Op para promessas?
No reino das promessas , surgiu a questão de saber se .then(function(a){ return a; }) é uma não operação. Vamos esclarecer esta pergunta curiosa:
Sim, normalmente é um ambiente autônomo.
O código em questão recebe o valor de retorno da promessa anterior no cadeia por meio da função passada para .then(). No entanto, se essa função apenas retornar a entrada a, ela efetivamente ignora qualquer processamento ou transformação do resultado da promessa. Isso o torna uma etapa extra inofensiva, mas desnecessária, no pipeline de promessas.
Por que foi escrito dessa maneira?
É provável que seja um erro de digitação ou uma relíquia de equívocos anteriores sobre promessas. Quando as promessas foram introduzidas, alguns desenvolvedores acreditaram erroneamente que .then() precisava retornar uma promessa para continuar a cadeia. Como resultado, eles adicionaram esta chamada .then() supérflua para garantir que o valor retornado sempre permanecesse uma promessa, mesmo que fosse idêntico à entrada.
Diferença entre retornar .then() e Omitindo
Embora semanticamente equivalente, existem diferenças sutis entre retornar .then() e omiti-lo:
Casos extremos
Em situações raras, .then(function(a){ return a; }) pode têm comportamentos incomuns:
Conclusão
Em geral, .then(function(a){ return a; }) é um não -op que não agrega nenhum valor a uma cadeia de promessas. Deve ser omitido, a menos que haja uma razão convincente para usá-lo, como evitar promessas compartilhadas ou lidar com comportamentos obscuros relacionados a isso.
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