Javascript 异步等待不工作,控制台未返回错误
我正在尝试使用async await进行API调用,但它不起作用,也没有给出错误 这里我试图调用getRace(),它返回一个承诺,所以我在这里使用wait关键字:Javascript 异步等待不工作,控制台未返回错误,javascript,async-await,Javascript,Async Await,我正在尝试使用async await进行API调用,但它不起作用,也没有给出错误 这里我试图调用getRace(),它返回一个承诺,所以我在这里使用wait关键字: async function RaceInfo(){ await getRace(raceID) } 然后调用RaceInfo()并使用then来处理响应: RaceInfo().then(res=>{ if(race.status === "in-progress") {
async function RaceInfo(){
await getRace(raceID)
}
然后调用RaceInfo()并使用then来处理响应:
RaceInfo().then(res=>{
if(race.status === "in-progress") {
renderAt('#leaderBoard', raceProgress(res.positions))
}else if(race.status === "finished"){
clearInterval(raceInterval) // to stop the interval from repeating
renderAt('#race', resultsView(res.positions)) // to render the results view
}
然后,所有这些都需要在一个最终承诺中进行分组,并在外部进行调用:
function runRace(raceID) {
return new Promise(resolve => {
// TODO - use Javascript's built in setInterval method to get race info every 500ms
async function RaceInfo(){
await getRace(raceID)
}
RaceInfo().then(res=>{
if(race.status === "in-progress") {
renderAt('#leaderBoard', raceProgress(res.positions))
}else if(race.status === "finished"){
clearInterval(raceInterval) // to stop the interval from repeating
renderAt('#race', resultsView(res.positions)) // to render the results view
resolve(res)
}
}).catch((err) => {
console.log(err);
})
const raceInterval=setInterval(RaceInfo, 500);
})
}
console没有返回错误,可能是什么问题?您没有从
RaceInfo
返回任何内容,并且race
在传递给RaceInfo()的回调中未定义。然后(…)
函数getRace(raceID){
返回新承诺((解决、拒绝)=>{
setTimeout(()=>resolve({status:“finished”}),300);
})
}
函数runRace(raceID){
返回新承诺(解决=>{
//TODO-使用Javascript内置的setInterval方法每500毫秒获取一次比赛信息
异步函数RaceInfo(){
//添加的返回语句
返回等待getRace(raceID);
}
RaceInfo()。然后(race=>{//更改了参数名
如果(race.status==“进行中”){
控制台日志(“正在进行的比赛”);
//renderAt(“#排行榜”,比赛进度(排名))
}否则如果(race.status==“finished”){
控制台日志(“正在进行的比赛”);
//clearInterval(raceInterval)//停止重复间隔
//renderAt(“#race”,resultsView(res.positions))//用于渲染结果视图
//解决(res)
}
}).catch((错误)=>{
控制台日志(err);
})
常数raceInterval=setInterval(RaceInfo,500);
});
}
跑步(7)代码>您尚未从
RaceInfo
返回值。尝试返回等待getRace(raceID)