React/javascript按块加载数据

React/javascript按块加载数据,javascript,reactjs,axios,Javascript,Reactjs,Axios,我不知道怎么做。我现在的代码: import React from 'react'; import axios from 'axios'; class App extends React.Component { constructor(props) { super(props); this.state = { isAllLoaded: false, dataItems: [], }; this.serviceURL = URL;

我不知道怎么做。我现在的代码:

import React from 'react';
import axios from 'axios';

class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      isAllLoaded: false,
      dataItems: [],
    };
    this.serviceURL = URL;
  } 

async componentDidMount() {
    const { isAllLoaded, dataItems } = this.state;
    try {
      const { searchId } = await axios.get(`${this.serviceURL}/search`);
      // ????
      while (!isAllLoaded) {
        const { data } = await axios.get(`${this.serviceURL}/dataItems?searchId=${searchId}`);
        const chunkData = data.dataItems;
        const isStop = data.stop;

        this.setState({
          isAllLoaded: isStop,
          dataItems: [...dataItems, ...chunkData],
        });
      }
      // ????
    } catch (error) {
      console.log(`failed: ${error}`); // failed: Error: Request failed with status code 500 :(
    }
  }
}
我需要获取searchId, 请求:
URL/search
响应:
{“searchId”:“we5iD”}

然后按块加载所有数据项。 请求:
URL/dataItems?searchId=4niyd
响应:
{dataItems:[],stop:false}

在加载的块中,我选择了“停止”,即标记是否是最后一块。
我可以得到一个块,但是如何保持加载直到所有块都加载?当我尝试这个代码时,我得到了错误500。我应该将“while”与“await”一起使用吗?

500错误是内部服务器错误。是否确实发送了正确的api请求?如果不在while循环中,它将返回正确的结果<代码>{dataItems:Array(300),stop:false}现在我认为这是因为有时服务器会对错误(500)做出真实的响应。。。我不知道如何修复它,并重新发送请求,如果我得到这个错误。500错误是内部服务器错误。是否确实发送了正确的api请求?如果不在while循环中,它将返回正确的结果<代码>{dataItems:Array(300),stop:false}现在我认为这是因为有时服务器会对错误(500)做出真实的响应。。。我不知道如何修复它,并重新发送请求,如果我得到这个错误。