비동기(async) 제너레이터(generator) 함수 생성자를 지원하는 객체이다. 드러나지 않는 은닉된 객체이며 전역 객체가 아니다.
AsyncGenerator
객체는 선언식 비동기 제너레이터(generator) 함수, 표현식 비동기 제너레이터(generator) 함수에서 반환한 객체를 나타내며 몇가지 지원하는 API를 갖는다. AsyncGeneratorFunction
객체는 선언식 제너레이터(generator) 함수, 표현식 제너레이터(generator) 함수 외에 생성자를 통한 AsyncGenerator
객체를 생성하는 생성자를 제공한다. 이렇게 생성된 객체 역시 동일하게 AsyncGenerator
객체를 반환한다. AsyncFunction
객체에서 지원하는 생성자 방식과 동일하지만 functoin
키워드 뒤에 *
를 붙이는 것이 차이가 있다.
// Function 객체의 생성자를 사용
const AsyncGenerator = async function*() { }.constructor;
const demo = new AsyncGenerator();
비동기 제너레이터(generator) 함수에서 반환된 AsyncGenerator
객체는 이터러블 프로토콜(Iterable protocol)과 이터레이터 프로토콜(Iterator Protocol)을 모두 준수한다.
AsyncGenerateFunction
객체는 은닉된 객체이며 전역 객체가 아니다. 그리고 직접적인 생성자 함수를 가지고 있지 않다. 따라서 아래 구문처럼 Function
전역 객체의 생성자를 사용한다.
비동기 제너레이터(generator) 함수를 생성하는 생성자 함수이다. 하지만 기본적으로 Function
객체의 생성자와 동일하므로 자세한 사항은 Functoin
객체의 생성자 함수
를 참고한다.