Generator Functions ES2015

generator는 전통적인 function의 return 방식의 흐름이 아니라 yield 키워드를 이용해서 외부에서 값을 받을때까지 멈춰 있거나 외부에 값을 전달하고 멈추는 흐름을 만들어 낼 수 있다.

function을 정의 할때 *

function *nameList() {
  yield "Flynn"; // { done: false, value: "Flynn" }
  yield "Hanna"; // { done: false, value: "Hanna" }

*의 위치는 중요하지는 않음 대신 function 키워드 첫번째로 와야함

function *nameList(){
function* nameList(){
function * nameList(){

generator function을 호출 하면 generator object를 리턴하게 된다.
이를 아래 처럼 사용 할 수 있다.


for(let name of nameList()) {
  console.log(name); // Flynn

spread operator

let names = [...nameList()];
console.log(names);  // ["Flynn", "Hanna"]


let [first, second] = nameList();
console.log(first, second); // Flynn Hanna

Subscribe to flynn's devnote

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.