在我的场景中,用户可以兑换优惠券。虽然她没有登录,但她仍然可以测试兑换功能以了解它是如何工作的。在两个兑换流程之间切换
我有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?