Javascript 如何通过react中的redux传奇中的抛出错误来破坏生成器功能

Javascript 如何通过react中的redux传奇中的抛出错误来破坏生成器功能,javascript,reactjs,generics,redux,redux-saga,Javascript,Reactjs,Generics,Redux,Redux Saga,我在redux传奇中有这个函数 函数*CheckUserIsAuth(){ 试一试{ const user=yield call(getCurrentUser); console.log(用户); 如果(!user)抛出新错误(null); const data=yield调用(createUserDocument,用户); const dataSnapshot=yield data.get(); 屈服put(emailSignInSucc({id:dataSnapshot.id,…dataSn

我在redux传奇中有这个函数

函数*CheckUserIsAuth(){
试一试{
const user=yield call(getCurrentUser);
console.log(用户);
如果(!user)抛出新错误(null);
const data=yield调用(createUserDocument,用户);
const dataSnapshot=yield data.get();
屈服put(emailSignInSucc({id:dataSnapshot.id,…dataSnapshot.data()}));
}捕获(错误){
产量输出(EmailSignError(error.message));
}
}
如果用户
null

我试图使用上面的代码抛出错误,但它仍然转到
emailSignInSucc
,并将
null
作为字符串提供给我


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

检查
用户
以及他们返回的内容。 可能
user
是一个空对象,并且不会触发错误


如果调用了
throw new Error()
,则代码将继续在
catch
中运行,检查
用户
及其返回的内容。 可能
user
是一个空对象,并且不会触发错误


如果
抛出新错误()
被调用后,代码将继续在
catch

中运行,如果它转到
emailSignInSucc
user
不是
null
@Aleksey当我在第二行登录用户时,它会显示为null如果它是
null
-您将访问
catch
阻止可能是您的操作创建者
emailSignInError
使用与
EmailSignInScc
相同的操作类型,而不是创建新的one@AlekseyL. 谢谢你的解决方案,问题出在操作类型上如果它转到
emailSignInSucc
,那么
user
不是
null
@Aleksey当我在第二行登录用户时,它会显示它是null如果它是
null
-您将进入
catch
块可能您的操作创建者
EmailSignError
使用与您相同的操作类型
emailSignInSucc
而不是创建新的one@AlekseyL. 感谢您提供的解决方案,问题出现在实际操作中,第二行是typei'm print user,它返回null。第二行是i'm print user,它返回null