鍍金池/ 問答/HTML/ vue中如何實(shí)現(xiàn)同步請求

vue中如何實(shí)現(xiàn)同步請求

邏輯是這樣的,打開頁面先調(diào)用獲取個人信息接口userInfo,然后根據(jù)這個個人信息userInfo返回的ID作為參數(shù)去請求其他數(shù)據(jù)接口。
問題就是,axios是異步操作,userInfo還沒來得及返回ID,其他接口就已經(jīng)在請求了,參數(shù)傳的都是默認(rèn)的空,這樣肯定就返回相應(yīng)數(shù)據(jù)。這個有什么辦法實(shí)現(xiàn)同步嗎?或者其他解決方案,謝謝了。

回答
編輯回答
青裙

clipboard.png

2017年8月14日 06:41
編輯回答
汐顏

axios 是基于 promise 開發(fā)的,那就采用 promise 的寫法來就行了

axios.get('xxx')
    .then(res => {
        return res.data //  你要在接下來使用的 data
    }).then(data => {
         // 這里調(diào)用上面的 res.data
    })
2017年10月17日 11:48
編輯回答
淡墨

axios實(shí)質(zhì)上是promise,所以可以用then之類的構(gòu)成一個鏈。如果深入理解async/await貌似也能實(shí)現(xiàn)局部的順序動作

2017年4月14日 01:14
編輯回答
亮瞎她

我也遇到過這樣的情況,當(dāng)時沒多想,就是簡單的做了下嵌套,在第一次請求成功后發(fā)起第二次請求

axios.get('/api/info')
.then(res => {
    let id = res.data.id
    axios.get('api/next', params: {
        params: { id }
    }).then( res => {
        console.log(res)
    })
})
2018年1月18日 23:55
編輯回答
命多硬

用watch試試看

2017年7月7日 16:07
編輯回答
凝雅

那就把其他請求接口的函數(shù)寫在獲取個人信息接口userInfo返回成功的函數(shù)里

2017年9月30日 17:47