Redux-Saga文档中的奇怪登录流程示例

时间:2018-03-02 23:44:58

标签: javascript reactjs redux redux-saga

例如,如果您阅读了redux-saga的文档中的this部分,则会有一个与登录流程相关的示例,如下所示。

function* loginFlow() {
  while (true) {
    yield take('LOGIN')
    // ... perform the login logic
    yield take('LOGOUT')
    // ... perform the logout logic
  }
} 

正如那里所说:

  

loginFlow Saga更清楚地传达了预期的动作序列。   它知道LOGIN操作应始终跟随LOGOUT   操作,LOGOUT后面总是有一个LOGIN

LOGOUT是否始终遵循LOGIN?我不这么认为。例如,当用户像往常一样登录网站时,会话将存储在网站的cookie中,当用户再次访问该网站时,loginFlow saga将如何捕获LOGOUT操作?

或者,下一个示例,再次登录描述here。我想知道如果授权还没有完成,用户可以点击LOGOUT,还没有显示用户退出网站的按钮?这些例子听起来很奇怪我有点困惑。

有人能解释一下这些例子如何适应登录流程的真实情况吗?

感谢。

1 个答案:

答案 0 :(得分:0)

只有当一个Action /或Actions与之关联时,saga才会运行。 例如,您有一个按钮,用于调度类型为{type:“LOGIN_LOGOUT”,data}的操作。现在假设只有当这个动作发送时,才会调用上面的saga。 如果登录,它将注销,反之亦然,因此示例。