Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 异步等待不工作,控制台未返回错误_Javascript_Async Await - Fatal编程技术网

Javascript 异步等待不工作,控制台未返回错误

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 await进行API调用,但它不起作用,也没有给出错误 这里我试图调用getRace(),它返回一个承诺,所以我在这里使用wait关键字:

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)