鍍金池/ 問(wèn)答/HTML/ 請(qǐng)問(wèn)axios請(qǐng)求的url中如何包含前一個(gè)axios請(qǐng)求得來(lái)的信息呢

請(qǐng)問(wèn)axios請(qǐng)求的url中如何包含前一個(gè)axios請(qǐng)求得來(lái)的信息呢

我先貼一下代碼

    class App extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            city:"北京"
        };
    }

    componentDidMount() {
            axios.post('//獲取所在城市名稱的api')
            .then((response)=>{
                this.setState({city:response.data});
            })
            .catch((err)=>{
                console.log(err);
            });
            
            axios.get('//需要包含城市名稱的api')
            .then((response)=>{
            })
            .catch((err)=>{
            })
    }
 }

但是由于axios的異步處理,在this.setState({city:response.data});之前就已經(jīng)執(zhí)行下一次axios的request了,所以請(qǐng)求的url中經(jīng)常包含(北京(默認(rèn)的初始值)),請(qǐng)問(wèn)如何才能使其包含上一次axios請(qǐng)求得來(lái)的信息呢。

PS:我想過(guò)在then和catch里面添加axios函數(shù),但是那樣似乎就將axios重用了(用了兩遍),所以我想請(qǐng)教一下有沒(méi)有更好的方法。

回答
編輯回答
念舊
1、在第一個(gè)請(qǐng)求成功那里調(diào)用第二個(gè)請(qǐng)求
2、async/await
2018年2月28日 13:19
編輯回答
萌小萌

在第一個(gè)then里面發(fā)起第二次請(qǐng)求

2017年6月29日 02:52
編輯回答
久礙你

看起來(lái)你是這個(gè)意思:

new Promise((resolve, reject) => {
  axios.post('//獲取所在城市名稱的api')
    .then((response)=>{
      resolve({city: response.data});
    })
    .catch((err)=>{
      resolve({city: this.state.city})
    });
})
.then(({city}) => {
  axios.get('//需要包含城市名稱的api')
  .then((response)=>{
  })
  .catch((err)=>{
  })
})
2017年2月12日 02:02