¿Puede alguien ayudarme a entender la diferencia, si la hay, entre estas dos declaraciones ternarias a continuación?
const variables = await (conditional ? asyncFunctionOne() : asyncFunctionTwo()); const variables = conditional ? await asyncFunctionOne() : await asyncFunctionTwo();A primera vista, ambos hacen lo mismo, pero una parte de mí piensa que no se ejecutan en el mismo orden.
Habría una pequeña diferencia si se tratara de una llamada de función:
const variables = doSomething(conditional ? functionOne() : functionTwo()); const variables = conditional ? doSomething(functionOne()) : doSomething(asyncFunctionTwo()); const temp = conditional ? functionOne() : asyncFunctionTwo(); const variables = doSomething(temp); Estos pueden parecer equivalentes a primera vista, pero no lo son si el código en conditional o incluso dentro de functionOne / functionTwo cambia la variable doSomething .
Sin embargo, await no es una función sino una sintaxis, su significado se determina al analizar y compilar el código, no al evaluarlo y resolver una variable. Entonces, las dos líneas en su pregunta son absolutamente equivalentes.