const wait = function () {
return new Promise(function (resolve, reject) {
resolve()
setTimeout(console.log('a'), 5000)
})
}
wait().then(() => console.log('b'))
解释代码:
正如你在上面看到的,我创建了一个wait()
返回承诺的函数,在这个函数中,resolve()
将立即执行,以及一个将在 5 秒后记录“a”消息的计时器。
我所期望的:
所以我期望的是该then()
方法将被执行,它then()
立即移动到该方法,所以从这里它将记录“b”消息。并且由于 5 秒计时器在后台等待,在 Web API 中,'a' 消息将在 'b' 消息之后记录。
它实际上做了什么:
但是结果是如此不同,两条消息都立即同时记录,并且'a'在'b'之前,5秒还没有过去。大家能不能帮我解释一下,我不太明白,我认为我对then()
方法的理解是错误的,所以请知道的帮我修复,非常感谢!