vue2.0 beforeRouteEnter里 怎么调两个接口.来自Vuejs
2017-04-28
展开全部
只能调用一次,这边可以用 Promise.all 解决,等待两个异步操作都返回结果後再 next:
beforeRouteEnter (to, from, next) {
// Promise.all 会等到数组内的 Promise 都 resolve 後才会继续跑(then)
Promise.all([
main._base({
methodName: 'QueryProductInfo',
productId: to.params.id
}),
main._base({
methodName: 'QueryProductReview',
type: '0',
index: '0',
count: '2',
productId: to.params.id
})
])
.then( result => next( vm => {
// 执行结果会按照上面顺序放在 result 数组内,所以 result[0],代表第一个函数的 resolve 结果
vm.product = result[0].data.product
vm.shop = result[0].data.shop
vm.evalData = result[1].data
}))
}
beforeRouteEnter (to, from, next) {
// Promise.all 会等到数组内的 Promise 都 resolve 後才会继续跑(then)
Promise.all([
main._base({
methodName: 'QueryProductInfo',
productId: to.params.id
}),
main._base({
methodName: 'QueryProductReview',
type: '0',
index: '0',
count: '2',
productId: to.params.id
})
])
.then( result => next( vm => {
// 执行结果会按照上面顺序放在 result 数组内,所以 result[0],代表第一个函数的 resolve 结果
vm.product = result[0].data.product
vm.shop = result[0].data.shop
vm.evalData = result[1].data
}))
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询