NATIVE

settings_applicationsObject

NATIVE

Editing
  • account_tree
  • bug_report

ObjectAsyncGenerator

생성자가 따로 없고 비동기 제너레이터 함수(generator function)로부터 생성되어 반환된다. 프로토타입을 통해 메소드를 지원한다.  비동기 이터러블(async iterable)과 비동기 이터레이터(async iterator) 프로토콜(protocol)을 준수한다.

AsyncGenerator 객체의 인스턴스를 생성하는 함수는 선언식과 표현식 그리고 AsyncGeneratorFunction 객체의 생성자로 구현이 가능하다.

설명

제너레이터(generator) 함수는 실행문에 대한 정교한 제어 기능을 추가해 일반 함수보다 복잡한 로직 설계에 이점이 있는 함수 형태이다. AsyncGenerator 객체는 비동기 제너레이터 함수를 생성한다. 비동기에 대한 개념은 AsyncFunction 객체에서 짧게 요약한 부분이 있으므로 참고한다. 비동기 함수를 생성할 때 동기 함수 생성 방법을 따르고 async 키워드를 추가하므로 동기 함수임을 알리는 것 처럼 제너레이터 함수도 동일하다. 단지 function 키워드 끝에 *를 붙여 제너레이터 함수임을 알린다. 비동기 제너레이터 함수이므로 function 키워드 앞에 aync 키워드도 함께 작성해야 한다. 그리고 비동기 함수처럼 결과값을 Promise 객체를 통해 반환해야 한다.

비동기 제너레이터(generator) 함수 생성 방식
// 선언식
async function* demo() {

}

// 표현식
const demo = async function*() {

}

제너레이터(generator) 함수에 대한 자세한 내용은 Generator 객체를 참고한다.

비동기 제너레이터(generator) 함수에서 반환된 AsyncGenerator 객체는 이터러블 프로토콜(Iterable protocol)과 이터레이터 프로토콜(Iterator Protocol)을 모두 준수한다.

예제

Example

Function 객체의 생성자 함수를 사용해서 생성하는 것 보다 매우 간결하다. 따라서 선언식 또는 표현식으로 AsyncGenerator 유형의 함수를 생성하는 것이 더 좋다.

하위 트리 탐색

  • [[Prototype]]

    • Methods

      • next()

        비동기 제너레이터(generator) 함수의 다음 시퀀스를 수행한다.

      • return()

        제너레이터(generate) 함수에 return 문을 삽입한 것 처럼 작동한다. 선택적으로 인수로 지정된 값이 반환되어지고 제너레이터(generate) 함수는 종료된다.

      • throw()

        제너레이터(generator) 함수에 현재 위치에서 throw문이 삽입된 것 처럼 작동한다. throw는 사용자 정의 예외(exception)를 발생시키고 실행을 중지한다.

버전 명세

ECMAScript 2024(15th Edition)
#sec-asyncgenerator-objects

지원 웹브라우저