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的另一件事似乎不起作用。但是我不知道是否相关。

最佳答案

takeEverytakeLatest已在内部使用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)
  ]);
}

09-25 15:52