小编Lah*_*ori的帖子

数组数据在嵌套异步箭头函数循环中丢失

线程详细解释了同步与异步之间的区别以及可能的解决方案,但我已经在使用其中一种解决方案,但仍然出现错误。我想我ES在这里达到了我的理解极限,所以我真的需要关于这个问题的帮助,因为我只是不明白为什么它会丢失。下面是我在项目中使用的代码片段nuxt,但它与它没有任何关系,因为我从后端移植了这个代码片段,即express.

async fetch({store, error}) {
  let series = '', courses = [], album = {}
  store.state.courses.forEach(async course => {
    album = {...course}
    series = course.uri.split('/')[2]
    try {
     const {data: {data}} = await axios.get('http://localhost:3000/luvlyapi/videos', {
      params: {
        series  //? album id
      }
    })
    album['videos'] = data
    courses.push(album)
    console.log('loop', courses)
  } catch (err) {
    error({statusCode: err.statusCode, message: err})
  }
})
console.log({courses})
store.commit('SET_COURSES', courses)
Run Code Online (Sandbox Code Playgroud)

} 结果

您可以看到数组正在被推送,但循环结束后仍然为空。

javascript ajax ecmascript-6 es6-promise arrow-functions

6
推荐指数
1
解决办法
2017
查看次数