async 이터레이터와 제네레이터
-
이터레이터와 제네레이터는 동기 작업만 가능
-
async 로 비동기 작업에 맞게 이터레이터, 제네레이터 구현 가능
-
for..of 대신 for await ..of 사용
-
이터레이터/async이터레이터 는 이터레이터 반환하는 메서드로 Symbol.iterator/Symbol.asyncIterator, next가 반환하는 값은 {value,…, done: true/false}/await 같은 프로미스로 감싸진 {value,…, done: true/false}
-
제네레이터/async제레레이터 는 선언은 function/async function, next()/async next() 가 반환하는 값은 {value,…, done: true/false}/await 같은 프로미스로 감싸진 {value,…, done: true/false}, 값 얻을때는 result = generator.next()/ result = await generator.next()
-
이터러블 객체에 비동기 동작 추가하려면 Symbol.itrator 대신 async Symbol.asyncIterator 로 바꿔야 함-