Esto es algo que nunca he sido capaz de concretar.
Considere una función asíncrona en Typescript. ¿Cual es correcta?
async function asyncFunctionOne(string1: string, string2: string, string3: string) { var returnObject1 = new object { fieldOne: object1, fieldTwo: object2, fieldThree: object3 } return Promise.resolve(returnObject1) } async function asyncFunctionTwo(string1: string, string2: string, string3: string) { var returnObject2 = new object { fieldOne: object1, fieldTwo: object2, fieldThree: object3 } return returnObject2; }
Además, considere que estábamos llamando a esta función y necesitábamos la respuesta para algo más en nuestro programa. ¿Tendríamos que esperar la primera función, la segunda función, ambas o ninguna?
Esas funciones asíncronas siempre devuelven una promesa. Un valor de retorno simple se envolverá con una promesa resuelta siempre. Observe en el siguiente código que se puede obtener el mismo resultado usando await
o Promise.then
.
(async function() { async function asyncFunctionTwo() { return 999; } asyncFunctionTwo().then((val => console.log(val))); //OR console.log(await asyncFunctionTwo()) })();