- 제너레이터는 함수의 실행을 일시 중지하고 나중에 다시 실행할 수 있게 해준다. ⏸️
yield
키워드는 함수 실행을 중단하고 값을 반환하며,next()
호출 시 다음yield
부터 재개된다. ⏯️- 제너레이터는 이터러블 객체를 반환하여 반복자 프로토콜을 준수,
for...of
문이나 스프레드 문법 사용이 가능하다. ♻️ next()
메서드는{value, done}
형태의 객체를 반환하며, 마지막yield
이후done
이true
가 된다. ✅- 제너레이터를 사용하여 무한 스크롤, 애니메이션 시퀀스 제어, 데이터 스트림 처리 등을 구현할 수 있다. 🎬
- 리덕스 사가에서 상태 관리에 제너레이터를 사용했지만, 현재는 많이 사용되지 않는다. 🤷♀️
- 비동기 제너레이터는 디버깅 난이도가 높고 가독성이 떨어질 수 있다. ⚠️