createTimeCountUp
const t = timeCountUpGen();
t.next().value; // 0
await sleep(20);
t.next().value; // 20 <= t.next().value <= 30
await sleep(30);
const beforePause = t.next().value; // 50 <= t.next().value <= 60
// 暂停
t.next(false);
await sleep(10);
t.next().value === beforePause; // true
t.next().value; // 50 <= t.next().value <= 60
// 继续
t.next(true);
await sleep(10);
t.next().value; // 60 <= t.next().value <= 70
// 停止
t.return();
t.next() // { done: true, value: undefined }
// 使用for...of
async function test(){
let count = 0;
const t = timeCountUpGen();
for(const v of t){
console.log(v);
await sleep(1000);
count++ >= 10 && t.return();
}
}
test();
// outputs
// 1010
// 2015
// 3024
// 4031
// 5040
// 6048
// 7057
// 8065
// 9073
// 10081
创建一个时间累计生成器
createTimeCountUp的Generator版本