Estoy usando una API (mapbox) que tiene un método asíncrono que usa una función de devolución de llamada para obtener funciones de los clústeres en el mapa. Dado que cada grupo puede contener otros grupos, necesito llamar a esto de forma recursiva para obtener todas las funciones. He escrito este método recursivo:
getClusterChildrenRecursive(clusterId: any, features: any[] = []) { //API call, I can't modify method getClusterChildren this.map.getSource('events').getClusterChildren(clusterId, (err, children) => { for (let i = 0; i < children.length; i++) { if (children[i].properties.cluster) { //Child is another cluster, recurse this.getClusterChildrenRecursive(children[i].properties.cluster_id, features); } else { //Found feature, add to collection features.push(children[i]); } } }); }Pero no puedo averiguar cómo llamar a esto y devolver una colección de todas las funciones. He pensado en devolver una promesa, pero no consigo que funcione.