ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Generator에 대하여
    Programming/javascript 2022. 4. 24. 22:06

    제너레이터(Generator): 일반 함수는 하나의 값(혹은 0개의 값)만을 반환하지만, 제너레이터는 여러 개의 값을 필요에 따라 하나씩 반환(yield)할 수 있다. 제너레이터와 이터러블 객체를 함께 사용하면 데이터 스트림 생성 가능.

    예)function* generateSequence(){
    yield 1;
    yield 2;
    return 3;
    };

    일반 함수와 동작 방식이 다르다, 제너레이터 함수를 호출하면 코드가 실행되지 않고, 대신 실행을 처리하는 제너레이터 객체가 반환됨.
    예)function* generateSequence(){
    yield 1;
    yield 2;
    return 3;
    };
    let generator = getnerateSequence();
    alert(generator); --> 아직 함수 실행 안됨. 
    ⬇️
    function* generateSequence(){
    yield 1; <----- 현재 첫번째 값만 받음.
    yield 2;
    return 3;
    };
    let generator = getnerateSequence();
    let one = generator.next();
    alert(JSON.stringify(one)); //{ value:1, done:false }
    --> next()는 제너레이터 주요 메서드, 호출시 가장 가까운 yield <value>문을 만날 때까지 실행이 지속됨, 
    value: 산출 값, done: 함수 코드 실행이 끝났으면 true, 아니라면 false 
    let two = generator.next();
    alert(JSON.stringify(two)); //{ value:2, done:false }이런식으로 진행 한다.

    댓글

Designed by Kort.