为什么使用useEffect从区块链中获取数据时得到的是promises数组?

Why do I get an array of promises when getting data from the blockchain with useEffect?

我正在使用 React 并使用 useEffect 从区块链获取数据,但问题是在我映射数据并将其放入 lendingData 数组后,当记录它时 returns 一个承诺数组。 代码:

   const data = mainnet.Vaults.map((pool) => {
      const loadLendingData = async () => {
        const dataPool = await getPoolInfo(pool);
        // setLendingData((prevPool) => [...prevPool, dataPool]);
        return dataPool
      };
      return loadLendingData();
    });
    setLendingData(data)
    setLoading(false);
  }

如果我在拉取数据时使用了等待,为什么我会得到承诺?

看起来你应该使用 map 创建一个 promises 的数组,然后你可以 awaitPromise.all

const promises = mainnet.Vaults.map(pool => getPoolInfo(pool));

const data = await Promise.all(promises);

setLendingData(data);

函数 loadLendingData 正在返回一个承诺,地图函数没有等待它得到解决。

   const data = mainnet.Vaults.map((pool) => {
  const loadLendingData = async () => {
    const dataPool = await getPoolInfo(pool);
    // setLendingData((prevPool) => [...prevPool, dataPool]);
    return dataPool
  };
  return loadLendingData;
});
const res = Promise.all[data]
setLendingData(res)
setLoading(false);
}