Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.09.2022, 15:14
Аспирант
Отправить личное сообщение для Elfix Посмотреть профиль Найти все сообщения от Elfix
 
Регистрация: 03.01.2018
Сообщений: 38

Рекурсивная функция 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.
Ответить с цитированием
  #2 (permalink)  
Старый 13.09.2022, 16:19
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от Elfix
Почему отображается Object?
Цитата:
В console.log() встроено одно ограничение. Если в объекте есть другие объекты на глубине больше второго уровня вложенности, то при выводе такого объекта на экран вместо объектов отобразится строка [Object], а вместо массива — [Array].
Сообщение от Elfix
Хотелось бы вместо него отображать структуру json.
Цитата:
Для вывода таких объектов можно воспользоваться функцией преобразования в JSON:
https://ru.hexlet.io/courses/js-obje...ts/theory_unit
Ответить с цитированием
  #3 (permalink)  
Старый 13.09.2022, 18:01
Аспирант
Отправить личное сообщение для Elfix Посмотреть профиль Найти все сообщения от Elfix
 
Регистрация: 03.01.2018
Сообщений: 38

Спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 14.09.2022, 00:54
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

А какая у тебя СУБД? Почти во всех есть иерархические запросы, чтоб вот такой хренью не заниматься
Ответить с цитированием
  #5 (permalink)  
Старый 26.09.2022, 21:53
Аспирант
Отправить личное сообщение для Elfix Посмотреть профиль Найти все сообщения от Elfix
 
Регистрация: 03.01.2018
Сообщений: 38

Postgresql
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не получается перейти на другую страницу ejs. Ivan65913 Node.JS 0 11.08.2022 01:20
Ошибка You have tried to call .then(), .catch() Ivan65913 Node.JS 8 29.07.2022 14:37
async await + es6???? Роман Андреевич Node.JS 1 20.12.2018 13:25
Выполнение массива промисов последовательно arealhz Node.JS 30 07.07.2018 12:45
распарсить строку json sotik AJAX и COMET 14 24.11.2014 16:06