Redux Saga观察者差异

时间:2018-06-27 14:49:21

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

1 个答案:

答案 0 :(得分:1)

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)
  ]);
}