【JS】vue中如何实现同步请求
逻辑是这样的,打开页面先调用获取个人信息接口userInfo,然后根据这个个人信息userInfo返回的ID作为参数去请求其他数据接口。
问题就是,axios是异步操作,userInfo还没来得及返回ID,其他接口就已经在请求了,参数传的都是默认的空,这样肯定就返回相应数据。这个有什么办法实现同步吗?或者其他解决方案,谢谢了。
回答
axios实质上是promise,所以可以用then之类的构成一个链。如果深入理解async/await貌似也能实现局部的顺序动作
axios 是基于 promise 开发的,那就采用 promise 的写法来就行了
axios.get('xxx') .then(res => {
return res.data // 你要在接下来使用的 data
}).then(data => {
// 这里调用上面的 res.data
})
那就把其他请求接口的函数写在获取个人信息接口userInfo返回成功的函数里
用watch试试看
我也遇到过这样的情况,当时没多想,就是简单的做了下嵌套,在第一次请求成功后发起第二次请求
axios.get('/api/info').then(res => {
let id = res.data.id
axios.get('api/next', params: {
params: { id }
}).then( res => {
console.log(res)
})
})
以上是 【JS】vue中如何实现同步请求 的全部内容, 来源链接: utcz.com/a/85943.html