Javascript 在成品调用完成之前激发的成品put

Javascript 在成品调用完成之前激发的成品put,javascript,react-native,redux,redux-saga,Javascript,React Native,Redux,Redux Saga,我试图进行API调用,但在yield调用完成执行之前,yield put被触发。这是我的密码: Api.js 函数调用API(端点,标记=null){ 常量完整URL= endpoint.indexOf(API_ROOT)==-1?API_ROOT+endpoint:endpoint; 返回轴 .get(完整URL,{头:{授权:令牌}}) 。然后(resp=>{ 返回Object.assign([],分别为数据); }) .catch(error=>({error:error.message

我试图进行API调用,但在yield调用完成执行之前,yield put被触发。这是我的密码:

Api.js

函数调用API(端点,标记=null){
常量完整URL=
endpoint.indexOf(API_ROOT)==-1?API_ROOT+endpoint:endpoint;
返回轴
.get(完整URL,{头:{授权:令牌}})
。然后(resp=>{
返回Object.assign([],分别为数据);
})
.catch(error=>({error:error.message | | |“发生了不好的事情”}));
}
export const checkOpenRegister=(branchId、userId、token)=>{
console.log(“签入打开”);
卡拉皮(
`分支/${branchId}/registers?过滤器[where][status]=1&过滤器[where][userId]=${userId}`,
代币
);
};
在我的传奇中
index.js

函数*doCheckAuthInfo(){
试一试{
const user=收益率选择(getUser);
if(user.token){
收益率看跌期权({
类型:检查\u验证\u信息\u成功,
有效负载:{token:user.token}
});
产量输出({type:CHECK_OPEN_REGISTER_REQUESTED});
}否则{
//重定向到登录
产生put(NavigationActions.navigate({routeName:“Login”}));
}
}捕获(错误){
产生put({type:CHECK_AUTH_INFO_FAILED,error});
}
}
函数*doCheckOpenRegister(){
试一试{
const user=收益率选择(getUser);
const response=yield call(
支票登记簿,
user.branchId,
user.userId,
用户令牌
);
产生put({type:CHECK\u OPEN\u REGISTER\u success,payload:response});
}捕获(错误){
产生put({type:CHECK\u OPEN\u REGISTER\u FAILED,error:error.message});
}
}
函数*watchCheckAuthInfo(){
最新版本(检查所需的授权信息,doCheckAuthInfo);
}
函数*watchCheckOpenRegister(){
最新产量(检查打开的登记簿,Docheckopen登记簿);
}
//同时使用它们
导出默认函数*rootSaga(){
交出全部([
fork(watchCheckAuthInfo),
拨叉(watchCheckOpenRegister)
]);
}
在我的故事中,在函数
doCheckOpenRegister
上,在没有有效负载的情况下生成PUT,但我可以在我的网络调试器中找到有效负载


我需要有效载荷来触发重定向操作。在这种情况下,当响应中有一个值时,我需要重定向到主页。

您忘记了从函数
checkOpenRegister返回承诺

export const checkOpenRegister=(branchId、userId、token)=>{
console.log(“签入打开”);
返回调用API(
`分支/${branchId}/registers?过滤器[where][status]=1&过滤器[where][userId]=${userId}`,
代币
);

};您忘记了函数的返回承诺
checkOpenRegister

export const checkOpenRegister=(branchId、userId、token)=>{
console.log(“签入打开”);
返回调用API(
`分支/${branchId}/registers?过滤器[where][status]=1&过滤器[where][userId]=${userId}`,
代币
);
};