Answer the question
In order to leave comments, you need to log in
How to make nested async.eachSeries work?
Hello.
Faced a problem, it is necessary to sort out an array with categories asynchronously. Categories up to the 5th nesting level. In each iteration, I need to carry out asynchronous operations, preferably in order, but this is not critical.
await eachSeries(categories, async (category) => {
console.log(`Обрабатываем категорию ${category.name}`);
// тут разбираем внутренности, кое-то кидаем в базу
// и кое-что кидаем в общий массив
categoriesData.push(prepare(category));
if (category.hasOwnProperty('childNodes')) {
// Второй уровень категорий
let second_level = category.childNodes;
await eachSeries(second_level, async (cat_second) => {
// тут разбираем внутренности, кое-то кидаем в базу
// и кое-что кидаем в общий массив
categoriesData.push(prepare(cat_second));
if (cat_second.hasOwnProperty('childNodes')) {
// Третий уровень категорий
let third_level = cat_second.childNodes;
await eachSeries(third_level, async (cat_third) => {
// тут разбираем внутренности, кое-то кидаем в базу
// и кое-что кидаем в общий массив
categoriesData.push(prepare(cat_third));
if (cat_third.hasOwnProperty('childNodes')) {
// Четвертый уровень категорий
let fourth_level = cat_third.childNodes;
await eachSeries(fourth_level, async (cat_fourth) => {
// тут разбираем внутренности, кое-то кидаем в базу
// и кое-что кидаем в общий массив
categoriesData.push(prepare(cat_fourth));
if (cat_fourth.hasOwnProperty('childNodes')) {
// Пятый уровень категорий
let fifth_level = cat_fourth.childNodes;
for (cat_fifth of fifth_level) {
// тут разбираем внутренности, кое-то кидаем в базу
// и кое-что кидаем в общий массив
categoriesData.push(prepare(cat_fourth));
}
}
return true;
}, (err) => {console.log('level 4'); console.log(err); });
}
return true;
}, (err) => {console.log('level 3'); console.log(err); });
}
return true;
}, (err) => {console.log('level 2'); console.log(err); });
}
return true;
}, (err) => {console.log('level 1'); console.log(err); });
prepare()
Обрабатываем категорию Красота
Обрабатываем категорию Игрушки
Обрабатываем категорию Продукты
Обрабатываем категорию Зоотовары
Обрабатываем категорию Канцтовары
Обрабатываем категорию Здоровье
level 1
null
level 3
null
Ошибка при добавлении категорий в базу. Error: 400: Bad Request
Категории добавлены и обновлены. Заняло времени: 00:00:00.03
level 3
null
level 3
null
level 3
null
level 3
null
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question