Hola no encuentro solución a mi problema de funciones en cascada,
Servicio A
print(await serviceB.methodA(myParameter));Servicio B
async methodA(MyParameter){ return await methodB(MyParamter).then((value) =>{ serviceA.methodC(value); } ); }Entonces la salida es
undefined result¿Cómo puedo esperar al segundo resultado del entonces? Porque cuando se vuelve indefinido está rompiendo mi servicio A
Usando su estructura de código, necesita devolver la promesa interna.
Cambia esto:
async methodA(MyParameter){ return await methodB(MyParamter).then((value) =>{ serviceA.methodC(value); }); }a esto:
async methodA(MyParameter){ return methodB(MyParamter).then((value) =>{ return serviceA.methodC(value); }); } El resultado de .then() se convierte en el valor resuelto de la cadena de promesa. Como no devolvía nada del controlador .then() , ese valor resuelto se convirtió en undefined .
Pero, dado que está usando async/await , generalmente es mejor no mezclar también .then() en el mismo código, por lo que recomiendo cambiar a esto:
async methodA(MyParameter){ let value = await methodB(MyParamter); return serviceA.methodC(value); }