Fetch API не отправляет данные при первом вызове - NestJs - PullRequest
1 голос
/ 24 апреля 2020

У меня есть API в Nest Js, который не отправляет данные при первом попадании. Однако при повторном нажатии он отправляет нужные данные. Я предполагаю, что API возвращается до внутренней обработки.

Как это остановить. Является ли сон хорошим вариантом для этого?

Или есть другой способ сделать это?

@Post("load")
@UseGuards(AuthGuard("jwt"))
async load(@Req() body: any)
{           
    const organizationId = body.user.organizationId;
    const userId = body.user.userId;

    if ("brandIds" in body.body)
    {
        await this.userService.onBoardUser(userId);
    }

    var settings = await this.settingsService.fetchLayout(organizationId, "home");      

    settings.forEach(async (element) =>  
    {
        var parsedElement = JSON.parse(JSON.stringify(element));

        var innerContent = await this.fetchContent(parsedElement.method, organizationId, userId);           

        var template = parsedElement.content[0];
        let formattedItem = {};

        innerContent.forEach((item) =>
        {               
            try 
            {
                formattedItem = template;                                           

                Object.keys(template).forEach((key) => 
                {                                           
                    if (template[key]!= "" && key != "type")
                    {
                        formattedItem[key] = eval(template[key]);
                    }                       
                });

                parsedElement.content.push(formattedItem);
                formattedItem = null;
            }   
            catch(err)
            {

            }                                                   
        });

        this.response.data.push(parsedElement);

        innerContent = null;
        template = null;
        formattedItem = null;
        parsedElement = null;

    });

    return(this.response);
}

1 Ответ

0 голосов
/ 24 апреля 2020

похоже, что ваша главная проблема здесь в том, что вы используете async / await внутри foreach, который не работает. Используйте это так:

for (const setting of settings) {
    ... your async code here.
}
...