Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.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,下面的代码,在getUserName上等待2秒后返回userName。hasUser返回一个承诺,然后只记录收到的用户名 问题是then方法logs中的console.logmsg未定义 不确定这里有什么问题。感谢你解释这里到底发生了什么 谢谢。hasUser不返回承诺。您尝试等待getUserName,但这也不会返回承诺。如果你想等待getUsername,你需要让getUsername返回一个承诺 function getUserName() { re

尝试学习async/await,下面的代码,在getUserName上等待2秒后返回userName。hasUser返回一个承诺,然后只记录收到的用户名

问题是then方法logs中的console.logmsg未定义

不确定这里有什么问题。感谢你解释这里到底发生了什么

谢谢。

hasUser不返回承诺。您尝试等待getUserName,但这也不会返回承诺。如果你想等待getUsername,你需要让getUsername返回一个承诺

function getUserName() {
    return new Promise((resolve, reject) => {
       setTimeout(() => {
          resolve('Appu')
       },2000)
    })
}
hasUser不返回承诺。您尝试等待getUserName,但这也不会返回承诺。如果你想等待getUsername,你需要让getUsername返回一个承诺

function getUserName() {
    return new Promise((resolve, reject) => {
       setTimeout(() => {
          resolve('Appu')
       },2000)
    })
}

getUserName的可能副本未返回承诺。setTimeout不会返回承诺,因此您必须将其回调模式转换为承诺。Scott链接上的公认答案显示了如何做到这一点。getUserName的可能副本不会返回承诺。setTimeout不会返回承诺,因此您必须将其回调模式转换为承诺。斯科特链接上的公认答案说明了如何做到这一点。