React 等待来自 API 的特定响应

Dvi*_*i N 11 javascript reactjs

我有一个页面等待来自服务器的特定状态。

问题是,服务器具有状态 -(启用、正在进行、已禁用),并且它也为 In_Progress 返回 200。

我想过异步,但问题是服务器会在 In_Progress 的情况下返回响应。

有什么办法可以等到 API 返回“已启用”?或者我必须每 X 秒发送一个请求?

编辑

如果有帮助,我可以选择在服务器端更改响应(502 而不是 200)。

谢谢

n9i*_*els 1

这在很大程度上取决于该服务端 API 的实现。在理想情况下,使用 Websockets 或服务器端事件之类的东西。这基本上意味着服务器将让客户端(React)知道它何时准备好。

在您的情况下,发送多个请求直到状态Enabled正确是最佳解决方案。您可以使用setIntervalclearInterval来实现。像这样的东西:

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)