Symbol.asyncIterator

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.

Symbol.asyncIterator 정적 데이터 속성은 잘 알려진 심볼 Symbol.asyncIterator를 나타냅니다. 비동기 순회 프로토콜은 객체에 대한 비동기 반복기를 반환하는 메서드에 대해 이 심볼을 검색합니다. 객체가 비동기 순회가 되려면 Symbol.asyncIterator 키가 있어야 합니다.

시도해보기

잘 알려진 심볼 Symbol.asyncIterator.

Property attributes of Symbol.asyncIterator
쓰기 가능불가능
열거 가능불가능
설정 가능불가능

예제

사용자 정의 비동기 순회

객체에 [Symbol.asyncIterator] 속성을 설정하여 자신만의 비동기 순회를 정의할 수 있습니다.

js
const myAsyncIterable = {
  async *[Symbol.asyncIterator]() {
    yield "hello";
    yield "async";
    yield "iteration!";
  },
};

(async () => {
  for await (const x of myAsyncIterable) {
    console.log(x);
  }
})();
// Logs:
// "hello"
// "async"
// "iteration!"

API를 만들 때 비동기 순회는 대부분의 상황에서 콜백이나 이벤트를 완전히 대체하는 것이 아니라 데이터 스트림이나 목록과 같이 순회를 표현하도록 설계되었음을 기억하시기 바랍니다.

내장 비동기 순회

핵심 JavaScript 언어에는 비동기 순회 가능한 객체가 없습니다. ReadableStream와 같은 일부 웹 API에는 기본적으로 Symbol.asyncIterator 메서드가 설정되어 있습니다.

명세서

Specification
ECMAScript Language Specification
# sec-symbol.asynciterator

브라우저 호환성

BCD tables only load in the browser

같이 보기