это не класс, а функция, возвращающая промис, в конструктор которого передана функция с двумя параметрами (сам конструктор вызывает эту функцию и передает туда функции в качестве параметров), можно переписать так (если отбросить всякие приколы с this, которые здесь не важны):
lev89, ну значит, запрос в цикле. Еще как вариант добавить поля для nested set или materialized path и пересчитывать в фоне при изменении иерархии, вряд ли это происходит сильно чаще, чем будет читаться иерархия.
Сергей delphinpro ну там есть нюанс, что сетевые запросы таки идут. И если будет не по 2мс на запрос, а по 20 (например на 3g соединении), то это будет уже заметно.
а сделано это для использования в await в одну строку вместо двух, например так:
вместо