Open gracekrcx opened 4 years ago
dispatch 一個 promise,middleware 幫你執行
const asyncAction = () => ({ type: 'PROMISE', payload: new Promise(...), // payload 是一個 promise })
const secondAction = (data) => ({ type: 'SECOND', payload: {...}, }) // 結合 redux thunk const firstAction = () => { // 這裏 dispatch 一個 function ---> thunk 被觸發 return (dispatch) => { // 這裏 dispatch action 是 payload 帶 promise ---> promise 被觸發 // 所以會經過 type : ''FIRST__PENDING'' // 然後 type : ''FIRST_FULFILLED'' const response = dispatch({ type: 'FIRST', payload: new Promise(...), }) // dispatch 另一個 action response.then((data) => { dispatch(secondAction(data)) }) } }
action.type = 'GET_DATA' => dispatch({type: type + '_PENDING'}) // promise 發出 => action.payload.then((data) => dispatch({ // sucess type: type + '_FULFILLED', payload: data })).catch({ // fail type: type + 'FOO_REJECTED', payload: err })
藉由 redux 去發 request
結論:先記錄下來,之後寫測試的時候應該會有感觸
Redux-Promise 是什麼
dispatch 一個 promise,middleware 幫你執行
結合 Redux Thunk to chain action creators.
Redux-Promise 執行順序