next 메소드에 인수전달

function* ff() {
    const num1 = yield "첫번째 숫자를 입력하세요";
    console.log(num1);

    const num2 = yield "두번째 숫자를 입력하세요";
    console.log(num2);
    
    return num1 + num2;
}

const f = ff();

console.log(f.next()); // {value: '첫번째 숫자를 입력하세요', done: false}
console.log(f.next(2)); // 2 / {value: '두번째 숫자를 입력하세요', done: false}
console.log(f.next(6)); // 6 / {value: 8, done: true}

generator는 값을 미리 만들어 놓지 않음

무한으로 반복하는 반복문을 사용해도 문제 없음 필요한 순간에 사용하기 때문에

function* fr(){
    let index = 0;
    while(true){
        yield index++;
    }
}
const r = fr();
console.log(r.next()); // 0
console.log(r.next()); // 1
console.log(r.next()); // 2

yiedl*

다른 generator 함수 부르기

function* gen1(){
    yield "W";
    yield "o";
    yield "r";
    yield "l";
    yield "d";
}

function* gen2(){
    yield "Hello,";
    yield* gen();
    yield "!";
}

console.log(...gen2())

댓글남기기