此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的另一件事似乎不起作用。但我不知道是否相关。
答案 0 :(得分:1)
takeEvery
和takeLatest
已在内部使用fork
,因此不需要将其包装在另一个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)
]);
}