[Javascript] 비동기, Promise, async, await 확실하게 이해하기

46.1 제너레이터란?

제너레이터와 일반 함수의 차이

  1. 제너레이터 함수는 함수 호출자에게 함수 실행의 제어권을 양도할 수 있다.
  2. 제너레이터 함수는 함수 호출자와 함수의 상태를 주고받을 수 있다.
  3. 제너레이터 함수를 호출하면 제너레이터 객체를 반환한다.

46.2 제너레이터 함수의 정의

// 제너레이터 함수 선언문
function* genDecFunc() {
	yield 1;
}

//제너레이터 함수 표현식
const genExpFunc = function* () {
	yield 1;
};

//제너레이터 메서드
const obj = {
	* genObjMethod() {
		yield 1;
	}
}

// 제너레이터 클래스 메서드
class MyClass {
	* genClsMethod() {
		yield 1;
	}
}
function* genFunc() { yield 1; } => 권장

function * genFunc() { yield 1; }

function *genFunc() { yield 1; }

function*genFunc() { yield 1; }
const genArrowFunc = * () => {
	yield 1;
};