在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 請問axios請求的url中如何包含前一個axios請求得來的信息呢

請問axios請求的url中如何包含前一個axios請求得來的信息呢

我先貼一下代碼

    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了,所以請求的url中經(jīng)常包含(北京(默認(rèn)的初始值)),請問如何才能使其包含上一次axios請求得來的信息呢。

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

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

在第一個then里面發(fā)起第二次請求

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

看起來你是這個意思:

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