第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

react中一個請求依賴于另一個請求的結(jié)果

react中一個請求依賴于另一個請求的結(jié)果

呼啦一陣風(fēng) 2019-01-05 22:01:21
react中發(fā)請求一般放在生命周期的componentDidMount事件中,但我現(xiàn)在有個需求是要發(fā)兩個請求,第二個請求的參數(shù)是第一個請求的結(jié)果。比如第一個請求的結(jié)果:state.res1 我如果把請求都直接放在componentDidMount中,第二個請求一開始是獲取不到參數(shù)的。我現(xiàn)在的做法是第一個請求除了更新state.res1,還會更新一個boolean:state.res1IsCompleted 標(biāo)識,再把第二個請求放在componentDidUpdate中,然后根據(jù)res1IsCompleted這個標(biāo)識判斷要不要發(fā)起第二個請求。但總覺得有點(diǎn)怪,如果我的請求依賴過多的話(因?yàn)楝F(xiàn)在在做工作流相關(guān)頁面,設(shè)計(jì)的請求會很多),會有一堆的標(biāo)識狀態(tài)放在state中。
查看完整描述

1 回答

?
慕村225694

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個贊

js 是異步的,肯定拿不到。
給你推薦兩個方法。

從你的描述中沒有看到redux之類的東西,所以我假設(shè)你只有react,調(diào)用接口使用的是fetch.

  • 回調(diào)

componentDidMount() {
    fetch(url).then(data => data.json()).then(res= {
        fetch(url2, {body: {res}});
    })
}
  • Promise

componentDidMount() {    const data1 = new Promise(resolve => {
        fetch(url).then(res => res.json()).then(data => resolve(data));
    });
    
    data1.then(data => {
        fetch(url2, {body: {data}});
    })
}

還有ES8提供的 async await .


查看完整回答
反對 回復(fù) 2019-01-05
  • 1 回答
  • 0 關(guān)注
  • 603 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號