반응형
generators 생성기
- 최초로 호출될 때, 함수 내부의 어떠한 코드도 실행되지 않고, 대신 생성자라고 불리는 반복자 타입을 반환합니다.
- 생성자의 next 메소드를 호출하면 yield 키워드를 만날 때까지 실행후 일시 중지
- 다시 next 메소드가 호출되면 그다음부터 실행후 다음번 yield 키워드를 만날 때까지 실행후 일시 중지
- 문법
function* gen() {
yield 1;
yield 2;
yield 3;
}
var g = gen(); // "Generator { }"
- .next() yield 표현을 통해 yield된 값을 반환
- .return() 주어진 값을 반환하고 생성기를 종료
- .throw() 생성기로 에러를 throw
function* g1() {
console.log('Hello');
yield 'Yield 1 Ran..';
console.log('World');
yield 'Yield 2 Ran..';
return 'returned';
}
var g = g1();
console.log(g.next().value);
// 결과값
// Hello
// Yield 1 Ran..
// console.log(g.next().value);
// // 결과값
// // World
// // Yield 2 Ran..
// console.log(g.next().value);
// // 결과값 returned
for (let val of g) {
console.log(val);
}
// 결과값
// Hello
// Yield 1 Ran..
// World
// Yield 2 Ran..
'ES6' 카테고리의 다른 글
String 내장객체 활용 (0) | 2021.03.23 |
---|---|
array 와 arrow function 활용 (0) | 2021.03.23 |
10. async 와 await (0) | 2020.07.15 |
9. promise (0) | 2020.07.14 |
8. Set, Map, WeakSet, WeakMap (0) | 2020.07.09 |