У меня есть массив кластеров, где каждый кластер содержит набор функций. Я использую два оператора forEach для итерации по кластерам и функциям, чтобы сохранить каждую функцию в моем массиве «result».
Мне нужно продолжить обработку моего массива "result". Но когда я спрашиваю о длине массива, утверждается, что длина равна 0, хотя я вижу в консоли, что в нем есть функции. Мне нужно найти способ обрабатывать массив «result» только после завершения цикла forEach.
Я читал об этой проблеме, вызванной асинхронной обработкой данных в JavaScript. Я уже пытался зарегистрировать Promise, но не могу заставить его работать, потому что в примерах всегда используется один цикл forEach, но у меня есть два цикла forEach друг в друге.
Это мой код:
var result = [];
clusters.forEach((cluster) => {
getFeatures(cluster_id, (features) => {
features.forEach((feature) => {
result.push(feature);
});
});
});
//do something with result array
console.log("resulting features array length: " + result.length); //results in 0