尝试学习异步/等待,下面的代码在getUserName()
上等待2秒后返回userName。 hasUser
(返回承诺),然后仅记录接收到的用户名。
问题出在方法日志console.log(msg)
中的undefined
内。
function getUserName() {
setTimeout(() => {
return 'Appu'
},2000)
}
var hasUser= async() => {
var a = await getUserName()
return a
}
hasUser().then((msg) => {
console.log(msg)
})
不确定这里是什么问题。欣赏解释这里实际发生的事情。
谢谢。
答案 0 :(得分:4)
hasUser
不返回承诺。您尝试await getUserName()
,但是也不会返回承诺。如果您想await getUsername()
,则需要做出getUserName
的承诺
function getUserName() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Appu')
},2000)
})
}