我有一系列故事,每个故事集都有一系列章节,每个章节都有一系列活动。
我正试图找出一个简单的方法来完成故事,章节和活动的选择,并将它们放在一个等效结构的json中。
到目前为止,我的代码看起来有些忙乱,我正在努力让它正常工作:
var toRet:any = {}
return storiesRef.get()
.then((stories)=>{
stories.docs.forEach((story)=>{
var chaptersRef = story.ref.collection(CHAPTER)
toRet[story.id] = story.data()
return chaptersRef.get()
.then((chapters)=>{
chapters.docs.forEach((chapter)=>{
toRet[story.id][chapter.id] = chapter.data()
var activitiesRef = chapter.ref.collection(ACTIVITY)
return activitiesRef.get()
.then((activities)=>{
activities.docs.forEach(activity => {
toRet[story.id][chapter.id][activity.id] = activity.data()
})
})
})
})
})
})
上面的代码不起作用,但我没有尝试修复它,我觉得我必须缺少一些东西,因为我的任务应该是获得我想要的值的相当简单的中间。
有没有办法将promises链接在一起比这样深度嵌套的循环更有意义?