【发布时间】:2019-10-16 09:51:58
【问题描述】:
尝试学习 async/await,下面的代码在 getUserName() 上等待 2 秒后返回用户名。 hasUser(返回一个承诺)然后只记录收到的用户名。
问题在于 then 方法日志 undefined 内的 console.log(msg)。
function getUserName() {
setTimeout(() => {
return 'Appu'
},2000)
}
var hasUser= async() => {
var a = await getUserName()
return a
}
hasUser().then((msg) => {
console.log(msg)
})
不知道这里有什么问题。感谢您解释此处实际发生的情况。
谢谢。
【问题讨论】:
-
getUserName 没有返回 Promise。并且 setTimeout 不返回承诺,因此您必须将其回调模式转换为承诺。 Scott 链接上接受的答案显示了如何做到这一点。