【发布时间】:2020-05-10 10:13:12
【问题描述】:
我是 Vuejs 的新手,我不知道如何从 2 个 axios 请求构建嵌套数组,我知道有更好的方法来实现目标......使用这段代码我构建了 2 个单独的数组,一个用于productList(包含单个商店的所有产品),一个用于shopName(包含所有shop_urls)。我需要使用 array.map 进行嵌套请求,因为我想为每个 shop_url 构建一个产品数组
import axios from 'axios';
export default
{
name: 'Product',
data: () => ({
key: 'mySecretKey',
productsList: [],
shopName: [],
errors: [],
}),
mounted() {
axios.get('https://shop.domain.org/api/shop_urls?display=full&output_format=JSON', {
auth: {
username: this.key
},
})
.then(response => response.data.shop_urls.map((val) => {
this.shopName.push(val.virtual_uri)
axios.get('https://shop.domain.org/' + val.virtual_uri + '/api/products?display=full&output_format=JSON', {
auth: {
username: this.key
},
})
.then(response => this.productsList.push(response.data.products))
.catch(e => this.errors.push(e))
}))
}
}
【问题讨论】:
-
是否可以在服务器端处理它以防止发送请求两次?服务器端的响应可以是对象数组,如
{ 'val' : val, 'products': products } -
不,也许是 prestashop API 网络服务