如何从异步等待函数中获取 Promise<Array[]> 的 return 值?

How to get return value of a Promise<Array[]> from an Async-Await Function?

我正在尝试获取异步等待函数的 return 值,但我没有获得我需要的值。

const filterStuff = async (filters) => {
   //some code here
   await client<StuffPagination>(endpoint,body)
   .then((stuffresult)=>{
      const {stuff,page} = stuffresult;
      let fiteredStuff as Stuff[] = stuff;
      console.log(filteredStuff);
      return filteredStuff;
   })
   .catch(()=>{
      //do something
   })
   .finally(()=>{
      //do something
   });
};

如何在函数外部获取 async-await 函数的实际 return 值 Stuff[]?我曾尝试使用 .then 获取数据,但数据的日志始终未定义,而 im returning 的 console.log(filteredStuff) 具有值。我有什么遗漏吗?

  useEffect(() => {
    filterStuff(BaseFilters).then((data) => {
      console.log(data);
    });
  }, []);

您在 filterStuff 函数中缺少 return 语句

const filterStuff = async (filters) => {
   //some code here
   return client<StuffPagination>(endpoint,body)
   .then((stuffresult)=>{
      const {stuff,page} = stuffresult;
      let fiteredStuff as Stuff[] = stuff;
      console.log(filteredStuff);
      return filteredStuff;
   })
   .catch(()=>{
      //do something
   })
   .finally(()=>{
      //do something
   });
};

您没有返回指定地点。请参阅下面等待响应的更新代码。

const filterStuff = async (filters) => {
   try {
      //some code here
      const stuffresult = await client<StuffPagination>(endpoint,body);
      const {stuff,page} = stuffresult;
      let fiteredStuff as Stuff[] = stuff;
      console.log(filteredStuff);
      return filteredStuff;
   }
   catch {
      //do something
   }
   finally {
      //do something
   }
};