En los bucles anidados tengo espera asíncrona. Para mí, es importante que en cada ciclo de iteración espere hasta que finalice la espera/se reciban los datos y comience la siguiente iteración.
const _sampleFilters = async ( pageName, details, available, ) => { for (const filterName of Object.keys(details)) { for (const filterValue of Object.keys(details[filterName])) { const data = (await fetchDetails( pageName )); details[filterName][filterValue].allDetails = cloneDeep( getProcessedData( data.map(data => data.value), available, pageName, ), ); } } };