"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 > .then(function(a){ return a; }) é um No-Op para promessas?

.then(function(a){ return a; }) é um No-Op para promessas?

Publicado em 2024-11-16
Navegar:740

Is .then(function(a){ return a; }) a No-Op for Promises?

É .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:

  • Nova instância de promessa: .then () cria uma nova instância de promessa, enquanto omitindo reutiliza a original. No entanto, essa distinção geralmente é irrelevante.
  • Verificação de capacidade de então: Com .then(), o valor retornado é verificado para determinar se é uma promessa ou não. A omissão de .then() ignora esta verificação.

Casos extremos

Em situações raras, .then(function(a){ return a; }) pode têm comportamentos incomuns:

  • Se o valor retornado repentinamente se tornar uma promessa após o cumprimento, .then() irá aguardá-lo.
  • Ele retorna um objeto de promessa distinto, que pode ser útil para compartilhando a evitação. No entanto, este é um caso de uso de nicho.

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.

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