오늘은 모던 JavaScript 튜토리얼에서 async 이터레이터와 제너레이터에 대해 공부했다. 작성한 질문은 다음과 같다.
비동기 이터레이터를 사용하면 비동기적으로 들어오는 데이터를 필요에 따라 처리할 수 있어서 네트워크를 통해 데이터가 여러 번에 걸쳐 들어오는 상황을 처리할 수 있게 된다. 더욱이 비동기 이터레이터에 비동기 제너레이터를 더하면 데이터를 편하게 처리할 수 있게 되는 것이다.
이터러블 객체를 비동기적으로 만들려면 다음과 같은 작업을 거치면 된다.
- Symbol.iterator 대신 Symbol.asyncIterator를 사용해야 한다.
- next()는 프라미스를 반환해야 한다.
- 비동기 어터러블 객체를 대상으로 하는 반복문 작업은 for await (let item of iterable) 반복문을 사용해야 한다.
여기서 객체를 비동기적으로 반복가능하게 하려면 Symbol..asyncIterator가 반드시 사용되어야 하고, Symbol.asyncIterator는 프라미스를 반환하는 메서드인 next()가 구현된 객체를 반환해야 한다. next()는 반드시 async일 필요는 없지만 async를 사용하면 await 또한 사용할 수 있게 된다.
'TIL' 카테고리의 다른 글
TIL - 20220815 (0) | 2022.08.15 |
---|---|
TIL - 20220814 (0) | 2022.08.14 |
TIL - 20220812 (0) | 2022.08.12 |
TIL - 20220811 (0) | 2022.08.11 |
TIL - 20220810 (0) | 2022.08.10 |