具有异步功能的array.filter不起作用

时间:2018-05-22 12:43:33

标签: javascript ecmascript-6 promise async-await nextjs

以下是我的代码。 我正在处理一个长度为8的名为contentList的数组,它过滤掉所有与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.log('categoryList', promises.length)

  return {
    categoryList,
    ...result,
  }
}

0 个答案:

没有答案