-
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 }이런식으로 진행 한다.'Programming > javascript' 카테고리의 다른 글
try-catch와 비동기 작업에 대하여 (0) 2022.07.24 Closure에 대하여 (0) 2022.02.10 Execution Context에 대하여 (0) 2022.02.10 일반 함수와 생성자 함수의 차이점 (0) 2022.02.10 function과 arrow function의 차이점 (0) 2022.02.10