tengo estas lineas de codigo
const countryIds = intersectingBbox.split(';'); const countryFound = countryIds.some(async (id) => { const possibleCountry = await _inBbox(id); return _checkPointInPolygonAndDispatch(possibleCountry); }); Este _checkPointInPolygonAndDispatch() es una función bastante complicada, pero al final devuelve true o false . El some() se ejecuta dos veces. La primera iteración entra en el bloque de _checkPointInPolygonAndDispatch() donde devuelve false . La segunda vez entra en el bloque de _checkPointInPolygonAndDispatch() donde devuelve false y luego interrumpe la iteración. El registro countryFound me da un true . Esto es inesperado porque en esta función _checkPointInPolygonAndDispatch() siempre va al bloque, donde devuelve false . Reescribí todo a esto
const countryIds = intersectingBbox.split(';'); for (let index = 0; index < countryIds.length; index++) { const possibleCountry = await _inBbox(countryIds[index]); const countryFound = _checkPointInPolygonAndDispatch(possibleCountry) if (countryFound) { break; } }Y esto funciona como se esperaba.
Entonces, supongo que no entiendo some() ? ¡¿Pensé que funciona mientras algo se evalúe como true ?!
su función asíncrona está devolviendo una Promise que es veraz. tendrá que reestructurar su código para manejar las promesas.