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
,因此不需要将其包装在另一个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)
]);
}