axios 在React中获得承诺而不是实际值

weylhg0b  于 2022-11-05  发布在  iOS
关注(0)|答案(2)|浏览(181)

嗨,我正在使用axios调用API,现在的问题是,每当我调用API时,它都会返回数组作为结果的承诺,而不是实际值。
下面是代码:

export const GetResults=async(arrays)=>{debugger

  let res=await  arrays?.map(async (i) => {

  const response= await callAPI(i);
   return  response

   })
   return res
}

import {GetResults} from'../../someFun'

  const callMe=async()=>{debugger
   const res=  await GetResults(["1","2","3")
   console.log( res)========/Promise
  }

const callAPI = (
  id?: string,
): Promise<void> => {
  const params = {
    id: id,
  };

  return api
    .get<>('api end point', { params })
    .then(({ data }) => data)
    .catch((err) => {
      return err;
    });
};

如何获取实际返回值而不是承诺值

p1tboqfb

p1tboqfb1#

您可以使用Promise.all返回所有已解决的承诺:

async function callAPI(i) {
  return `API response: ${i}`;
}

async function getResults(arrays) {
  const apiCalls = arrays?.map(async (i) => callAPI(i));
  return Promise.all(apiCalls);
}

async function callMe() {
  const res = await getResults(["1", "2", "3"]);
  console.log(res);
}

callMe();
mctunoxg

mctunoxg2#

可能const res= await GetResults(["1","2","3"]).toPromise()会起作用。

相关问题