Я думаю, что если вы замените:
await data.map(async (product, index) => {
if (index < 6) return;
await processProduct(product);
});
с
for (let i = 6; i < data.length; i++) {
await processProduct(data[i]);
}
Ваша проблема будет решена.
Некоторое объяснение: Функция карты javascript создает новый массив из исходного массива, когда он вызывает функцию обратного вызова для каждого элемента исходного массива, и помещает возвращенное значение обратного вызова в массив результатов. В этом случае await data.map(...
является недопустимым оператором, потому что результатом map
является массив. Чтобы исправить это, можно обернуть результат в await Promise.all(data.map(...))
или использовать обычный цикл for
. Вы можете использовать первый случай, когда вас не волнует параллелизм, и второй случай, когда вы хотите добиться последовательного порядка.