任务是这样,定时器在0时刻打出1,然后隔1s打出2,隔2s打出3…….如此,时间间隔依次递增。
考虑用generator的 yield 功能来完成 停顿。
talk is cheap, here’s the code.
function sleep(sleepTime){
setTimeout( ()=>{
it.next() // 关键在于异步控制 iterator 的 下一步。每次都会在 yield 中 停顿。
}, sleepTime )
}
function *main(){
for(let i = 1; i < 10; i++){
console.log(i)
yield sleep

本文介绍如何利用ES6的Generator函数创建一个时间间隔递增的定时器。通过yield关键字实现定时器在不同时间间隔打印数字,从1开始,每次间隔时间依次增加1秒。示例代码展示了一个封装的函数,运行结果显示存在少量误差,这是由于JavaScript引擎的单线程特性导致的。
最低0.47元/天 解锁文章
1484





