Dvi*_*i N 11 javascript reactjs
我有一个页面等待来自服务器的特定状态。
问题是,服务器具有状态 -(启用、正在进行、已禁用),并且它也为 In_Progress 返回 200。
我想过异步,但问题是服务器会在 In_Progress 的情况下返回响应。
有什么办法可以等到 API 返回“已启用”?或者我必须每 X 秒发送一个请求?
编辑
如果有帮助,我可以选择在服务器端更改响应(502 而不是 200)。
谢谢
这在很大程度上取决于该服务端 API 的实现。在理想情况下,使用 Websockets 或服务器端事件之类的东西。这基本上意味着服务器将让客户端(React)知道它何时准备好。
在您的情况下,发送多个请求直到状态Enabled正确是最佳解决方案。您可以使用setInterval和clearInterval来实现。像这样的东西:
const pollInterval = setInterval(() => {
let result = doRequest();
if (result == "Enabled") {
this.setState({ ready: true }, () => {
clearInterval(pollInterval)
});
}
}, 1000); // The interval is in milliseconds, so 1000ms = 1s
Run Code Online (Sandbox Code Playgroud)