只有在所有请求完成后,React Fetch才能从回调获得响应

时间:2019-01-30 06:53:05

标签: reactjs spring-boot

我正在使用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端点。

1 个答案:

答案 0 :(得分:0)

fetch调用返回一个Promise。因此,您不应立即调用另一个函数,而应提供一个在Promise成功解决后应调用的函数。