使用promise和setTimeout Generator JS延迟下一个收益[重复]

问题描述 投票:-1回答:1

我不知道为什么我在[before]之前和之后获得.log,而没有delay。我在做什么错?

function *sequence () {
    yield console.log("before")        
    yield new Promise(resolve => setTimeout(resolve, 5000))
    yield console.log("after")
}

for (const item of sequence) {
   console.log("---")
}
javascript generator
1个回答
0
投票

这可能是因为您不等待承诺解决。您需要等待第二笔收益返回的承诺

© www.soinside.com 2019 - 2024. All rights reserved.