generator

eunsuneun·2022년 2월 18일
0
  • generator는 yield라는 중단점이 있는 함수이다.
  • generator는 next와 함께 사용한다.
  • generator가 호출될 때 yield 앞에서 멈추고, 다음 호출 시 그 다음부터 실행된다.
  • 중단점인 yield 뒤에 값을 넣어주면 value 값으로 리턴된다.

const gen = function* () {
	console.log(1);
    yield;
    console.log(2);
    yield;
    console.log(3);
    yield 4;
};
const generator = gen();
generator.next();
-> 1 
-> output: {value: undefined, done: false}

generator.next();
-> 2
-> output: {value: undefined, done: false}

// 중단점인 yield 뒤에 값을 넣어주면 value 값으로 리턴된다.
generator.next();
-> 3
-> output: {value: 4, done: false}

generator.next();
-> output: {value: undefined, done: true}

generator함수를 통해 평소 금기시 되는 무한함수를 쓸 수 있다.

let i = 0;
const gen = generator*() {
	while(true) {
    	yield i++;
    }
}

gen().next();
-> output: {value: 0, done: false}

gen().next();
-> output: {value: 1, done: false}

gen().next();
-> output: {value: 2, done: false}

.
.
.
profile
뇌장하드 🤯

0개의 댓글