Asynchronous 异步函数返回一个挂起的承诺

Asynchronous 异步函数返回一个挂起的承诺,asynchronous,Asynchronous,我目前正试图从异步函数返回一个值,但返回了一个挂起的承诺。下面是我的代码: let checker = async(url) => { const result = await axios(url) .then(({ data }) => { if (data.status === "pending") { return true; } else { return

我目前正试图从异步函数返回一个值,但返回了一个挂起的承诺。下面是我的代码:

let checker = async(url) => {
   const result = await axios(url)
      .then(({ data }) => {
         if (data.status === "pending") {
            return true;
         } else {
            return false;
         }
      })
      .catch((err) => console.log(err));
   return result;
}

let n = 1;
while (n < 3) {
   let result = checker(url);
   if (result === true){
      //do some stuff 
   };
   n++;
}
let checker=async(url)=>{
常量结果=等待axios(url)
。然后({data})=>{
如果(data.status==“待定”){
返回true;
}否则{
返回false;
}
})
.catch((err)=>console.log(err));
返回结果;
}
设n=1;
而(n<3){
让结果=检查器(url);
如果(结果==真){
//做点什么
};
n++;
}

我还尝试在Promise.resolve(result)中返回结果,但仍然得到一个待定的承诺。有人能帮我解决这个问题吗?

我可以先在我的checker函数中返回一个Promise.resolve(result)

然后,我可以通过在while循环中调用检查器并在.Then之后访问它来使用检查器的结果

while (n < 3) {
   checker(url)
      .then((result) =>
         //use result
      )
   n++;
}
while(n<3){
检查程序(url)
。然后((结果)=>
//使用结果
)
n++;
}

因为checker本身是ashnc,所以它也会返回一个承诺。在调用checker函数时,可能会显示一些代码。我更新了上面的代码,以显示checker函数是如何使用的。啊,我明白了。在我的while循环中,我可以只调用checker(url)。谢谢你的帮助!没问题。快乐编码。