Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Рекурсивная функция async await (https://javascript.ru/forum/misc/84449-rekursivnaya-funkciya-async-await.html)

Elfix 13.09.2022 15:14

Рекурсивная функция async await
 
Всем привет!

Есть вот такой участок кода:
const getCoursesGroups = async (groupId = null) => {
        return await request.app.database.query(
            `SELECT

            courses_groups.id,
            courses_groups.display_name

            FROM catalogs.courses_groups
            WHERE
            courses_groups.course_group_id ${groupId === null ? `IS NULL` : ` = ${groupId}`}
            AND courses_groups.deleted = FALSE;`
        ).then(async groups => {
            return await Promise.all(groups.map(async group => {
                group.elements = await getCoursesGroups(group.id);
                return group;
            }));
        }).catch(e => {
            return null;
        });
    };

    let groups = await getCoursesGroups();
    console.log(groups);


Цель получить список групп и к каждой из групп добавить поле elements, состоящий в свою очередь из таких же подгрупп.

При запуске кода получаю ответ такой:

[
  {
    id: '1',
    displayName: 'Курсы подготовки бухгалтеров',
    elements: [ [Object], [Object], [Object], [Object], [Object], [Object] ]
  }
]


Почему отображается Object?
Хотелось бы вместо него отображать структуру json.

ksa 13.09.2022 16:19

Цитата:

Сообщение от Elfix
Почему отображается Object?

Цитата:

В console.log() встроено одно ограничение. Если в объекте есть другие объекты на глубине больше второго уровня вложенности, то при выводе такого объекта на экран вместо объектов отобразится строка [Object], а вместо массива — [Array].
Цитата:

Сообщение от Elfix
Хотелось бы вместо него отображать структуру json.

Цитата:

Для вывода таких объектов можно воспользоваться функцией преобразования в JSON:
https://ru.hexlet.io/courses/js-obje...ts/theory_unit

Elfix 13.09.2022 18:01

Спасибо!

Alexandroppolus 14.09.2022 00:54

А какая у тебя СУБД? Почти во всех есть иерархические запросы, чтоб вот такой хренью не заниматься

Elfix 26.09.2022 21:53

Postgresql


Часовой пояс GMT +3, время: 05:07.