Javascript JS异步/等待isn';t与forEach一起工作

Javascript JS异步/等待isn';t与forEach一起工作,javascript,asynchronous,async-await,Javascript,Asynchronous,Async Await,以下是我正在使用的代码(IP地址由于明显的原因被审查): 无论出于何种原因,jobList变量是在getJobs()函数完成运行之前分配的。getJobs()函数最终返回正确的输出,但代码已经继续。我做错了什么?async不会自动将基于回调的代码转换为基于承诺的代码-您必须显式地将回调转换为承诺,并在希望将其用作承诺时返回承诺 function getJobs() { return new Promise((resolve) => { //Open API connection

以下是我正在使用的代码(IP地址由于明显的原因被审查):


无论出于何种原因,
jobList
变量是在
getJobs()
函数完成运行之前分配的。
getJobs()
函数最终返回正确的输出,但代码已经继续。我做错了什么?

async
不会自动将基于回调的代码转换为基于承诺的代码-您必须显式地将回调转换为承诺,并在希望将其用作承诺时返回承诺

function getJobs() {
  return new Promise((resolve) => {
    //Open API connection and submit
    var url = "http://IPADDRESS:8082/api/jobs?IdOnly=true"
    var xhr = new XMLHttpRequest()
    xhr.open("GET", url, true)
    xhr.send()
    xhr.onreadystatechange = function() {
      if(xhr.readyState == 4 && xhr.status == "200") {
        resolve(xhr.response)
      }
    }
  });
}
然后,
getJobs
将返回一个承诺,然后您可以使用
wait

const jobList = await getJobs()

第二个函数不需要异步哦,感谢上帝!!!!这就是我错过的。我仍然习惯于整个=>编码结构。甚至不知道它到底是什么意思。我已经有8年没有深入研究过web开发了,所以我在标准和更新方面远远落后。这一切对我来说都太不直观了。是的,我本想这么做的,但我太激动了,忘了回来。我发帖后回复太快了,不允许我接受。
const jobList = await getJobs()