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)。谢谢你的帮助!没问题。快乐编码。