在我的場景中,用戶可以兌換優惠券。雖然她沒有登錄,但她仍然可以測試兌換功能以瞭解它是如何工作的。在兩個兌換流程之間切換
我有2個流量,notLoggedInRedeemFlow
的情況下,當未登錄她和loggedInRedeemFlow
的情況下,她已登錄。
我有根的傳奇,也應該開始一個流和停止基礎上,另用戶登錄狀態。
我想出了在一個流程和一個cancellation
行動之間使用該流程的競賽。
應用程序啓動時的notLoggedInRedeemFlow
是有效,而當用戶登錄。
然後loggedInRedeemFlow
啓動並運行,直到用戶註銷它應該結束。
function* redeemFlows() {
while (true) {
const result = yield race({
fake: call(notLoggedInRedeemFlow),
gotAccessToken: take([accountActions.LOGIN_SUCCESS, accountActions.START_SIGNUP_SUCCESS]),
})
yield race({
run: call(loggedInRedeemFlow, result.gotAccessToken.payload.access_token),
logout: take(accountActions.LOGOUT_SUCCESS),
})
}
}
我的問題是,如果這是最好的方式來處理這種情況在redux-sagas?