본문 바로가기

JavaScript

33. 제너레이터(Generator)

제너레이터(Generator)

- 실행을 멈췄다가 나중에 다시 접근할 수 있는 특이한 형태의 함수
- 나중에 다시 접근하기 위해 context(변수)를 저장된 상태로 남겨둠
- 이터레이터를 좀 더 유연하게 사용할 수 있음

- function 키워드 뒤에 *를 붙여 함수가 제너레이터 함수임을 나타냄

function* 제너레이터명(){

}
yield

- 제너레이터 함수에서 실행을 일시중단 하고, 값을 반환하는 키워드

<script>
    function* multipleGenerator(){
        try{
            for(let i = 0; i<10; i++){
                console.log(i);
                // yield: 제너레이터 함수에서 실행을 일시중단 하고, 값을 반환하는 키워드
                yield i**2;
            }
        }
        catch(error){
            console.log(error);
        }
    }
    const multiple = multipleGenerator();
    let next = multiple.next(); // 0
    console.log(next.value,next.done); // 0 false
    next = multiple.next(); // 1
    console.log(next.value,next.done); // 1 false
    next = multiple.next(); // 2
    console.log(next.value,next.done); // 4 false
    next = multiple.next(); // 3
    console.log(next.value,next.done); // 9 false
</script>

'JavaScript' 카테고리의 다른 글

35. 세트(Set)  (0) 2023.04.13
34. 스프레드(Spread)  (0) 2023.04.12
32. 이터레이터(Iterator)  (0) 2023.04.12
31. 이벤트(Event)  (0) 2023.04.12
30. wrapper  (0) 2023.04.12