javascript - Redux Saga 观察者差异
问题描述
这个 Sagas 观察者之间有什么区别:
export function* authWatcher() {
yield [
takeLatest(GET_USER_START, getUser),
takeLatest(EDIT_USER_START, editUser),
takeLatest(FORGOT_PASSWORD_START, forgotPassword),
takeLatest(LOGOUT_START, logout)
];
}
和:
export function* authWatcher() {
yield fork(takeLatest, GET_USER_START, getUser);
yield fork(takeLatest, EDIT_USER_START, editUser);
yield fork(takeLatest, FORGOT_PASSWORD_START, forgotPassword);
yield fork(takeLatest, LOGOUT_START, logout);
}
起初,他们做同样的事情,但我不知道哪种方法是最好的。有没有更好的办法?
我看到的另一件事 takeLatest 似乎不起作用。但是不知道有没有关系。
解决方案
takeEvery
并且已经在内部takeLatest
使用fork
,因此不需要将其包装在另一个叉子中。
在较新的 redux-saga 版本中不推荐使用产生一系列效果。改为使用all
效果。
export function* authWatcher() {
yield all([
takeLatest(GET_USER_START, getUser),
takeLatest(EDIT_USER_START, editUser),
takeLatest(FORGOT_PASSWORD_START, forgotPassword),
takeLatest(LOGOUT_START, logout)
]);
}
推荐阅读
- javascript - 使用 POST 请求获取授权令牌,然后在 GET 请求中使用 POST 响应
- spring - 在 CRON JOBS 中执行方法
- java - 在 SPring Boot 2.1.1 中扩展 GlobalMethodSecurityConfiguration 时出现错误,指出“methodSecurityInterceptor”已定义
- syntax - 如何在 Prolog 中正确使用规则
- java - 如何在从数据库获取的文本中添加换行符
- java - Jsoup 中不再包含 HtmlToPlainText
- mutt - 用户名与邮件不同的 Mutt 配置
- tensorflow - Tensorflow:根据另一个张量对一个张量进行采样?
- python - 在单元测试期间硬编码 Python 解释器 exec 的替代方法
- mysql - 如何在表格上插入日期 ISO 8601?