Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在reactjs和Wait中每2分钟调用一次操作_Javascript_Reactjs_Async Await_Es6 Promise - Fatal编程技术网

Javascript 如何在reactjs和Wait中每2分钟调用一次操作

Javascript 如何在reactjs和Wait中每2分钟调用一次操作,javascript,reactjs,async-await,es6-promise,Javascript,Reactjs,Async Await,Es6 Promise,我使用async Wait在react中调用API,我的问题是如何每2分钟调用一次get服务,因为在我的例子中,Promission没有解决它需要的时间并显示挂起状态,所以如果Promission没有解决,我想每2分钟调用一次get服务。有人可以指导我如何使用Wait来完成这项工作吗 这是我的代码,我已经完成了 export function fetchUser(id) { return async dispatch => { let userUrl = FETCH_USER_

我使用async Wait在react中调用API,我的问题是如何每2分钟调用一次get服务,因为在我的例子中,Promission没有解决它需要的时间并显示挂起状态,所以如果Promission没有解决,我想每2分钟调用一次get服务。有人可以指导我如何使用Wait来完成这项工作吗

这是我的代码,我已经完成了

export function fetchUser(id) {
  return async dispatch => {
    let userUrl = FETCH_USER_URL + id;
    let response1 = await get(userUrl); // I want to call this again if response not getting within a 2 minutes

    if (response1.status === 200) {

       let processUrl = FETCH_PROCESS_USER_URL;
       let response2 = await get(processUrl);
    if (response2.status === 200) {
       console.log("fetch process user success");
    } else {
       console.log("fetch process user failed");
    }
      console.log("success");
    } else {
      console.log("failed");
    }
  };
}
任何帮助都将不胜感激。提前感谢

您可以试试这个

const timeout=setTimeout(fetchUser(id),120000);
让响应=等待获取(url);
clearTimeout(超时);
因评论而编辑:
导出函数fetchUser(id){
返回异步调度=>{
让url=FETCH\u USER\u url+id;
const timeout=setTimeout(fetchUser(id),120000);//启动2分钟计时器,该计时器将在2分钟内再次调用函数
let response=wait get(url);//如果在2分钟内没有收到响应,请再次呼叫
clearTimeout(timeout);//如果在2分钟前收到响应,请将其删除
如果(response.status==200){
设url2=FETCH\u PROCESS\u USER\u URL;
let response2=等待获取(url);
如果(response2.status==200){
log(“获取进程用户成功”);
}否则{
log(“获取进程用户失败”);
}
控制台日志(“成功”);
}否则{
console.log(“失败”);
}
};
}
,,,
您可以试试这个

const timeout=setTimeout(fetchUser(id),120000);
让响应=等待获取(url);
clearTimeout(超时);
因评论而编辑:
导出函数fetchUser(id){
返回异步调度=>{
让url=FETCH\u USER\u url+id;
const timeout=setTimeout(fetchUser(id),120000);//启动2分钟计时器,该计时器将在2分钟内再次调用函数
let response=wait get(url);//如果在2分钟内没有收到响应,请再次呼叫
clearTimeout(timeout);//如果在2分钟前收到响应,请将其删除
如果(response.status==200){
设url2=FETCH\u PROCESS\u USER\u URL;
let response2=等待获取(url);
如果(response2.status==200){
log(“获取进程用户成功”);
}否则{
log(“获取进程用户失败”);
}
控制台日志(“成功”);
}否则{
console.log(“失败”);
}
};
}
,,,

请尝试这种方法

const NUM_RETRIES=3;
test();
异步函数getData(){
设arr=newarray(NUM_RETRIES).map(()=>null);
arr.forEach(()=>{
试一试{
等待获取('url');
}捕获(错误){}
});

}
请尝试这种方法

const NUM_RETRIES=3;
test();
异步函数getData(){
设arr=newarray(NUM_RETRIES).map(()=>null);
arr.forEach(()=>{
试一试{
等待获取('url');
}捕获(错误){}
});

}
2分钟是等待请求的很长时间。你确定没有其他问题吗?没有,从后端他们会将请求保留到3分钟。这是等待3分钟的最坏情况,但我仍然想涵盖它,因为我想在2或1分钟内调用服务。2分钟对于请求挂起来说是很长的时间。你确定没有其他问题吗?没有,从后端他们会将请求保留到3分钟。这是等待3分钟的最坏情况,但我仍然想涵盖它,因为我想在2或1分钟内调用服务。我已更新了代码,因为您的回答我无法理解,因为我是reactjs新手,您能看到我的更新代码吗?这就是我实际正在做的。fetchUser()我正在将此操作调用到我的两个不同容器中。通过导出它,但在您的回答中,您使用了不同的方法,因为我无法理解@linkinmedocheck编辑,我认为你的代码可以更干净,但我不知道你到底在做什么,所以除了变量名,我没有更改任何东西,因为使用相同的名称不是一个好的做法。ok将更改变量名以更清楚地理解。谢谢你的回复谢谢你给你宝贵的时间@linkinmedoI已经更新了代码,因为您的回答我无法理解,因为我是reactjs新手,您能看到我的更新代码吗?这就是我实际正在做的。fetchUser()我正在将此操作调用到我的两个不同容器中。通过导出它,但在您的回答中,您使用了不同的方法,因为我无法理解@linkinmedocheck编辑,我认为你的代码可以更干净,但我不知道你到底在做什么,所以除了变量名,我没有更改任何东西,因为使用相同的名称不是一个好的做法。ok将更改变量名以更清楚地理解。谢谢你的回复谢谢你给你宝贵的时间@林金梅多