Как вернуть ошибку из дочерней функции в функцию вызывающего абонента с помощью асинхронной? - PullRequest
0 голосов
/ 05 ноября 2018

пытается выбросить ошибку из метода execute в process, который является родительской функцией, если в методе execute есть ошибка, возвращается пустой объект. Как вернуть ошибку из дочерней функции в функцию-вызывающую функцию, чтобы она могла отправить логическую ошибку клиенту, используя try/catch?

main.ts

   export class GetSpecialtyQuestionsController extends Controller {
        public static async process(@Request() request: ExpressRequest,
            response: ExpressResponse): Promise < any > {
            try {
                const instance = new GetSpecialtyQuestionsController();
                const data = await instance.execute(request);
                response.status(200);
                response.send(data);
            } catch (err) {
                response.status(200);
                response.send(err.message);
            }

        }


        constructor() {
            super();
        }

        private async execute(@Request() request: ExpressRequest): Promise < any > {
            // const specialtyMembers = this.getSpecialtyMemberInfoFakeObject();
            const specialtyMembers = await new SpecialtyCacheUtility().getSpecialtyMemberInfoCache(
                request.body.getSpecialtyQuestionsRequest.header.serviceContext.tokenID);
            if (!specialtyMembers) {
                return this.errorHandler(request);
            }
            const body: any = this.buildSingleRequestBody(proxyMember, request.body.getSpecialtyQuestionsRequest);
            const requestObject = this.specialtyQuestionRequest(body);

            const requestArray: IRequestURL[] = [requestObject];

            const data = await makeRequest(requestArray);
            return this.mapSpecialtyResponse(data, specialtyMembers);
        }
    }
...