함수의 실행을 중간에 멈췄다가 재개할 수 있는 기능

function* fn() {
	console.log(1);
  yield 1;
	console.log(2);
  yield 2;
	console.log(3);
	console.log(4);
  yield 3;
  return "finish";
}

const a = fn();

a.next(); 를 입력하면 yield n 전까지의 코드를 호출한다.

다른 작업을 하다가 다시 돌아와서 진행이 멈췄던 부분 부터 이어서 실행

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/5d095ce5-16d0-470c-a72d-3c7057c3e6a7/Untitled.png

return(), throw()

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/e1b42310-a0cd-4fb9-8514-81cfea6bc125/Untitled.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/a61deea8-d9cd-47b4-9d70-62b8eb8e5921/Untitled.png

외부에서 부터 값을 입력 받을 수 도 있다

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/760db877-cdb1-4481-9fce-11a56ea7cba5/Untitled.png

무한 루프를 사용해도 컴퓨터가 뻗지 않는다 (이유: next 할때만 실행이 되어서 ..?)