¿Es .then(function(a){ return a; }) una operación no operativa para las promesas?
En el ámbito de las promesas , ha surgido la cuestión de si .then(function(a){ return a; }) es una no operación. Aclaremos esta curiosa consulta:
Sí, normalmente no se realiza la operación.
El código en cuestión recibe el valor de retorno de la promesa anterior en el cadena a través de la función pasada a .then(). Sin embargo, si esa función simplemente devuelve la entrada a, efectivamente omite cualquier procesamiento o transformación del resultado de la promesa. Esto lo convierte en un paso adicional inofensivo pero innecesario en el proceso de promesas.
¿Por qué se escribió de esa manera?
Probablemente sea un error tipográfico o una reliquia de conceptos erróneos anteriores sobre promesas. Cuando se introdujeron las promesas, algunos desarrolladores creyeron erróneamente que .then() necesitaba devolver una promesa para continuar la cadena. Como resultado, agregaron esta llamada superflua a .then() para garantizar que el valor devuelto siempre siguiera siendo una promesa, incluso si era idéntico a la entrada.
Diferencia entre devolver .then() y Omitirlo
Si bien es semánticamente equivalente, existen diferencias sutiles entre devolver .then() y omitirlo it:
Casos extremos
En situaciones excepcionales, .then(function(a){ return a; }) puede tienen comportamientos inusuales:
Conclusión
En general, .then(function(a){ return a; }) no es un -op que no agrega ningún valor a una cadena de promesa. Debe omitirse a menos que exista una razón convincente para usarlo, como evitar promesas compartidas o manejar comportamientos oscuros relacionados con los posibles.
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