首页 > 解决方案 > 如何通过在redux saga中抛出错误来破坏生成器功能

问题描述

我在 redux-saga 里面有这个功能

function* CheckUserIsAuth() {
  try {
    const user = yield call(getCurrentUser);
    console.log(user);
    if (!user) throw new Error(null);
    const data = yield call(createUserDocument, user);
    const dataSnapshot = yield data.get();
    yield put(emailSignInSucc({ id: dataSnapshot.id, ...dataSnapshot.data() }));
  } catch (error) {
    yield put(emailSignInError(error.message));
  }
}

如果用户是,我想打破尝试并捕获错误null

emailSignInSucc我尝试使用上面的代码抛出错误,但它仍然以null字符串的形式出现。

这意味着它完成了功能并且不会破坏它

标签: javascriptreactjsgenericsreduxredux-saga

解决方案


检查user他们返回的内容。也许user是一个空对象并且不会触发错误。

如果throw new Error ()被调用,那么代码将继续运行catch


推荐阅读