问题场景:数组循环, 在每一次循环中需要调一次接口,然后把请求回来的数据,在原数组上新增一个字段children来接收
答: 1.自执行函数
for (let i = 0; i < arr.length; i++) {
(function fn (item) {
let data = {
id: item.id,
name: item.name
}
this.$http(data).then(res => {
this.$set(item, 'children', res.tableList)
})
})(arr[i])
}
2. **promise.all方法(问题在于有一次接口报错,就获取不到数据啦)** Promise.all(arr.map(item => { return this.$http({ id: item.id, name: item.name }) })).then(res => { arr.forEach((item,index) => { this.$set(item, 'children', res[index].tableList) }) })