본문 바로가기

ES62

ES6의 Promise Javascript에서는 실행 결과를 받을 때까지 기다리지 않고 다음 작업을 이어서 하는 비동기 요청을 자주 쓴다. 요청과 완료 시점이 다르기 때문에 코딩은 더 어렵게 느껴지지만 javascript가 실행되는 single-thread 환경을 생각해보면 자주 사용할 수밖에 없다. 예를 들어 browser에서 동기적으로 작업을 한다면 그 작업이 진행되는 동안에 사용자의 액션은 freezing 될 것이고, 이런 browser는 아무도 사용하지 않을 것이다. 비동기를 자주 사용하는 환경인 만큼 이를 구현하는 방법도 시간에 따라 진화하고 있다. 최신 표준에서는 어떻게 구현을 하는지 알아보기 앞서서 진화해온 과정을 익히기 위해 옛날 방법부터 시작해서 ES6에 등장하는 Promise까지 알아보자. Callback j.. 2019. 10. 16.
ES6의 Iterator와 Generator 이번 글에는 Iterator와 Generator의 스펙과, 왜 등장했는지, 어떻게 사용하는지에 대해서 정리해본다. Iterator Iterator는 ES6에 추가되었다. 다시 해석하면 그 전에도 어찌어찌 구현하던 것을 Iterator로 바꿀 수 있단 뜻이다. Iterator는 정의된 인터페이스를 구현하면 그 구현체를 순회할 수 있는 객체이다. 순회라고 하면 Array가 떠오르고, Array를 순회하려면 forEach나 for-in으로도 가능하다. 하지만 forEach 는 순회 중간에 중단할 수 없는 단점이 있고, for-in은 이름부터 원하는 순회를 하는 듯 하지만 역시 아래와 같은 여러 단점이 있다. for (const i in arr) 에서 i의 type이 string으로 뭔가 이상하다. 왜 stri.. 2019. 10. 16.