亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

redux中的異步問題?

redux中的異步問題?

慕雪6442864 2019-01-27 09:05:46
在redux的異步場景中遇到這個問題。場景是這樣:我需要通過 redux-thunk 來發兩個 api 請求。但是第一個請求的返回數據正是第二個請求的請求數據,所以必須等第一個請求返回了才能發起第二個請求。怎么解決這樣的問題?
查看完整描述

3 回答

?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

感覺這種情況可以直接使用 promise-middleware 中間件,可以直接這樣寫:

// 假設你有兩個 action 發送請求:fetchInfo, fetchDetail


dispatch(fetchInfo())

    .then((action) => {

        // action.payload 就是 fetchInfo 的請求數據

        return dispatch(fetchDetail());

    })

    .then((action) => {

        // action.payload 就是 fetchDetail 的請求數據

    })


查看完整回答
反對 回復 2019-03-16
?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

function createTodo (todo) {

  return (dispatch) => {

    return fetch('/todos/create', {})

    .then(result => {

      dispatch({type: 'CREATED', result})

    })

  }

}


function getTodo (id) {

  return (dispatch) => {

    return fetch(`/todos/${id}`, {})

    .then(result => {

      dispatch({type: 'LOADED', result})

    })

  }

}

也可以createTodo().then(if(state==='成功!') getTodo())

由于then無論成功失敗都會執行。fetch 尿性。所以dispatch后需要判斷你改變的state滿足了需求,說明createTodo 執行成功了,就執行下一個

這種情況當兩個方法不在同一文件中,或者還會跟隨者其他的操作的時候用


查看完整回答
反對 回復 2019-03-16
  • 3 回答
  • 0 關注
  • 932 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號