Вот мой код ниже.
Я работаю над массивом contentList длины 8, который отфильтровывает все элементы, которые не работают с axios.get.
Он должен был создать массив длиной 5, но оказался длиной 8.
И result пустой, как и все async await не работает.
Что не так с моим кодом? Любая помощь будет оценена по достоинству.
static async getInitialProps () {
let result = {}
const promises = contentList.filter(async ({hotList, newList, hotUrl, newUrl}) => {
let hotRes, newRes
try {
hotRes = await axios.get(hotUrl)
newRes = await axios.get(newUrl)
} catch (e) {
return false
}
// if (hotRes.data.code === 200) {
result[hotList] = hotRes.data.data
// }
// if (newRes.data.code === 200) {
result[newList] = newRes.data.data
// }
return true
})
const categoryList = await Promise.all(promises)
console.info('categoryList', promises.length)
return {
categoryList,
...result,
}
}Вы не можете использовать функцию async в качестве параметра для фильтра. Если вы пытаетесь заставить его работать асинхронно, просто поместите фильтр в асинхронную функцию
Я увидел это решение и проделал точно так же, но получил неверный результат



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


откуда вы взяли идею, что ввод асинхронной функции, обещающей возвращающую функцию в
filter, которая требует функции, возвращающей логическое значение, было хорошей идеей?