vue promise all 多层嵌套

[size=medium][color=green][b]
目前我有一个需求是: 通过getFormNames得到了一个大集合A,在循环遍历A集合的每一条数据A1,A2。。。。以此类推,拿到A1作为参数,又会获得一个新集合,最终是把返回的结果拼装改造下返回一个新的response


export function getFormList(type, studyIds) {
return new Promise((resolve, reject) => {
getFormDisplayConfiguration(type, studyIds).then(response => {
const formData = response.data.forms

const promises = []
includeListOptions = true
formData.forEach(item => {
const promise = request({
url: `/api/formDefinition/${item.formExternalId}?includeListOptions=${includeListOptions}`,
method: 'get'
})
promises.push(promise)
})

Promise.all(promises).then(res => {
if (res.length === promises.length) {
res.formConfig = formData
resolve(res)
} else {
reject(res)
}
}).catch(err => {
reject(err)
})
}).catch(err => {
console.log(err)
reject('assign error')
})
})
}

下一篇有更优化的写法,也可参考我的下一篇文章

[/b][/color][/size]

你可能感兴趣的:(Vue)