sunmingtao / sample-code

3 stars 4 forks source link

Javascript example: generator (yield), promise, recursive. #170

Closed sunmingtao closed 3 years ago

sunmingtao commented 3 years ago
function* yieldArrayElements() {
    yield* [ 20, 30, 40 ];
}

let gen = yieldArrayElements();

function deal(gen) {
    const next = gen.next();
    if (next.done) {
        console.log('complete');
    return;
    } else {
        let promise = new Promise((resolve, reject) => {
            setTimeout(() => {
                resolve();
            }, 1000);
    });

    promise.then(() => {
        console.log(next.value);
        deal(gen);
    });
  }
}

deal(gen)