reactjs - 只有当所有请求都完成时,React fetch 才会从回调中获取响应
问题描述
我正在使用 react fetch 每 5 秒定期轮询 GET api 请求。前 8 个请求正常工作,这意味着我会立即收到每个请求的响应,但是当队列中有更多 api 请求等待并且我收到消息“注意:请求尚未完成”时,问题就来了。只有当所有请求都完成时我才得到响应(似乎它等待所有请求完成然后在回调中返回响应)。
如何在不等待所有请求完成的情况下立即获得每个请求的响应?
fetch(url, {
method: 'GET',
headers: {
Accept: 'application/json',
},
}).then(function (response) {
return response.json();
}).catch(function (error) {
console.log(error);
}).then((response) => {
if (response != null) {
// Got the response only if all requests are finished
this.setState({
...
})
}
})
}
更多信息,我使用 Spring Boot 作为 API 服务器,GET 端点。
解决方案
fetch 调用返回一个承诺。因此,您不应立即调用另一个函数,而应提供一个应在 promise 成功解析时调用的函数。
推荐阅读
- android - 有什么方法可以让用户在 android studio 的活动中添加按钮
- html - 如何以角度隐藏switch语句中的项目
- html - 在不使用阴影的情况下在自定义 div 上放置阴影
- python - 我在保存方法 Django 中得到了不正确的计算
- python - DictReader 没有以正确的方式解析我的字符串
- android - 有没有办法在 android 模拟器上使用 Microsoft Authenticator 的无密码登录选项
- javascript - Google 表格图表仅返回我的 REST API 的一行
- android - 如何在回收站视图中为多按钮设置 onclick
- moodle - R/exams Moodle 选择题不计分
- azure - 搜索 Azure Runbook 作业的“输入”?