ждать возврата неопределенного при вызове асинхронной функции? - PullRequest
0 голосов
/ 28 августа 2018

Так что в main.ts я пытаюсь вызвать метод класса processResponse, чтобы получить данные обратно из обработчика, но он всегда возвращает custObject неопределенный или даже не входит в processResponse функцию, что неправильно реализовано в приведенном ниже коде

main.ts

private async custResponse(data: any): Promise < any > {
    const custObject = await RequestResponseHandler.processResponse(data);
    return custObject;
}

handler.ts

public static async processResponse(data: any): Promise<any> {
    let response: any = {};
    console.log("Data>>..>>>>", data); // undefined
    try {
        if (data.Header.StatusCode === "0000") {
            response = data.Details;
            const tokenId = await this.cacheResponse(response);
            response.Header.tokenID = tokenId;
            return response;
        }
    } catch (err) {
            return data;
    }

}

1 Ответ

0 голосов
/ 28 августа 2018

Поскольку ваш console.log("Data>>..>>>>", data); равен undefined, это означает, что проблема находится где-то вверх по течению. Вы не передаете ничего в аргументе данных этому методу. Попробуйте проверить, где вы вызываете метод custResponse, и посмотрите, действительно ли данные передаются или нет (вероятно, нет).

Что касается неопределенного возврата, в вашем коде вы ничего не возвращаете, если код состояния не в порядке (в блоке try). Попробуйте положить немного возврата в конце.

public static async processResponse(data: any): Promise<any> {
    //....
    //try catch stuff...
    //....
    return data //or something else

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...