【问题标题】:How to get return from promise如何从承诺中获得回报
【发布时间】:2020-01-15 16:46:05
【问题描述】:

我想通过 axios 获取数据来设置表头,但是 getAxios1 和 2 似乎比较慢,然后返回表头需要刷新才能重新加载表头。 getAxios1和2之后怎么做return header。

我试着做下面的代码一步一步获取数据然后输出标题,但它仍然不起作用。

export const getHeader = (props: IAppProps) => {
  const promises = [];
  promises.push(getAxios1());
  promises.push(getAxios2());
  Promise.all(promises).then(d => {
  return   (<ErrorBoundary>
          <Header
          isAuthenticated={props.isAuthenticated}
          isAdmin={props.isAdmin}
          isUser={props.isUser}
          isFoPayroll={props.isStaff}
          ribbonEnv={props.ribbonEnv}
          isInProduction={props.isInProduction}
          isSwaggerEnabled={props.isSwaggerEnabled}
        />);
  });

【问题讨论】:

    标签: reactjs promise axios


    【解决方案1】:
    export const getHeader = (props: IAppProps) => {
      const [fetched, setFetchStatus] = useState(false);
      const [data, setData] = useState(null);
      const promises = [];
      promises.push(getAxios1());
      promises.push(getAxios2());
      Promise.all(promises).then(d => {
        setFetchStatus(true);
        setData(d);
      });
    
      // use data 
      return  fetched && (<ErrorBoundary>
              <Header
              isAuthenticated={props.isAuthenticated}
              isAdmin={props.isAdmin}
              isUser={props.isUser}
              isFoPayroll={props.isFoPayroll}
              ribbonEnv={props.ribbonEnv}
              isInProduction={props.isInProduction}
              isSwaggerEnabled={props.isSwaggerEnabled}
            />);
    

    还添加另一个状态来保存获取的数据。 我已编辑。希望这会有所帮助

    【讨论】:

      猜你喜欢
      • 2018-04-26
      • 2022-08-09
      • 2016-07-08
      • 2022-12-17
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      相关资源
      最近更新 更多