• createTimeCountUp的Generator版本

    返回 Generator<number, void, boolean | void>

    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