【发布时间】:2020-05-24 18:19:40
【问题描述】:
我不明白为什么我得到.log“之后”和“之前”一样的时间,没有延迟。
我做错了什么?
function *sequence () {
yield console.log("before")
yield new Promise(resolve => setTimeout(resolve, 5000))
yield console.log("after")
}
for (const item of sequence) {
console.log("---")
}
【问题讨论】:
-
因为你没有等待 Promise 解决..?
-
@CertainPerformance 这是一个非常广泛的网络,可以捕捉到重复的东西:)
-
你可以看看启用async generator,例如:jsfiddle.net/f6dnqthp
-
@jay_dtr 你把
yield和await混淆了吗?前者不等待任何事情。console.logitem可能有助于了解发生了什么。 -
@Icepickle 我认为这不是 OP 想要的。
标签: javascript generator