logo

Js에서 Generater란?

* 관련 기술 스택이 없습니다
emoji

• 제너레이터는 ES6에서 도입된 특수한 함수로, 코드 블록의 실행을 일시 중지했다가 필요한 시점에 재개할 수 있는 기능을 가지고 있다. 제너레이터 함수는 함수 호출자에게 실행의 제어권을 양도하며, 함수 호출자와 양방향으로 상태를 주고 받을 수 있다.
• 제너레이터 함수는 'function*' 키워드로 선언하며, 'yield' 키워드를 사용해 함수의 실행을 일시 중지하고, 'next' 메소드를 통해 함수의 실행을 재개한다. 이를 통해 함수의 실행 흐름을 필요에 따라 조절할 수 있다.
• 제너레이터는 iterable 프로토콜과 iterator 프로토콜을 모두 구현한 객체로, yield 키워드를 사용해 함수의 실행을 일시 중지하고 다시 재개할 수 있다. 제너레이터 객체는 next, throw, return 메소드를 갖는다.
• 제너레이터는 비동기 처리에 활용될 수 있으며, 프로미스의 후속 처리 메소드 없이 비동기 처리 결과를 반환하도록 구현할 수 있다. 하지만 코드가 복잡해지는 단점이 있어, 이를 해결하기 위해 ES8에서는 async/await가 도입되었다.

thumbnail
북마크
공유하기
신고하기
7분 분량
조회수 194
profile-imageCodyMan
2년 전
Copyright © 2025. Codenary All Rights Reserved.