Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

217
Vistas
Diferencia entre dos líneas del mismo código.

¿Puede alguien explicarme la diferencia entre las dos líneas de código? En mi editor atom, el más bonito cambia el primero por el segundo.

 (await fetchSearchResults(state.requestConfig, context))?.facilities ?? [] )

y

 await fetchSearchResults(state.requestConfig, context)?.facilities ?? [] )
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Las dos líneas no son iguales y cualquier cambio automático entre estas dos probablemente sea incorrecto.

Para simplificar, la diferencia es entre:

  1. (await foo()).bar
  2. await foo() .bar :

Debido a la precedencia del operador await , el segundo código ( await foo().bar ) hará lo siguiente:

  1. Ejecutar foo()
  2. Lea la bar de propiedades de ella
  3. await ese valor

Que se puede escribir como:

 const functionResult = foo(); const result = await functionResult.bar;

Mientras que el primer código usa el operador de agrupación () para cambiar el orden de las operaciones a:

  1. Ejecutar foo()
  2. await ese valor
  3. Lea la bar de propiedades de ella

Que se puede escribir como:

 const functionResult = await foo(); const result = functionResult.bar;

Esto marca absolutamente la diferencia si la función devuelve una promesa:

 function foo() { return Promise.resolve({ bar: "hello world" }); } async function main() { console.log( await foo() .bar); // undefined - `foo()` returns a promise and there is no `bar` property console.log((await foo()).bar); // "hello world" - since the promise resolves to { bar: "hello world" } } main();

También hace una diferencia si foo() es síncrono pero la propiedad bar es una promesa:

 function foo() { return { bar: Promise.resolve("hello world") }; } async function main() { console.log( await foo() .bar); // "hello world" since the promise resolves to that string console.log((await foo()).bar); // Promise (check the browser console) } main();

La única vez que no hace una diferencia es si no hay un código asíncrono (lo que significa que la await probablemente no debería estar allí):

 function foo() { return { bar: "hello world" }; } async function main() { console.log( await foo() .bar); // "hello world" console.log((await foo()).bar); // "hello world" } main();

about 4 years ago · Juan Pablo Isaza Denunciar

0

Prettier cambia todo para seguir las reglas dadas en un archivo de configuración de Prettier.
En su caso específico , (await fetchSearchResults(state.requestConfig, context)) es inútil, de ahí que Prettier lo elimine.

Mientras tanto, puede ser bastante importante en un contexto asíncrono clásico, como se explica en el comentario a continuación . Tal vez el encadenamiento opcional esté engañando de alguna manera a Prettier aquí, no estoy seguro.


La configuración predeterminada de Vue2 ESlint viene con plugin:vue/essential y eslint:recommended como valores predeterminados.
Aquí hay un enlace donde puede obtener más detalles de por qué.

Si es solo Prettier , verifique la parte de opciones de la documentación o un archivo de configuración .prettierrc en su proyecto (o superior).

about 4 years ago · Juan Pablo Isaza Denunciar

0

No necesita esos corchetes siempre que no vaya a usar el resultado de la promesa inmediatamente después, como en el ejemplo a continuación.

 (await fetchSearchResults(state.requestConfig, context))?.facilities ?? [] )?.someMethod()

pero la línea ya se está haciendo bastante larga, por lo que probablemente sea mejor que asigne el resultado de la promesa a una variable.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda