본문 바로가기
반응형

async3

async 와 await 로 작성하는 읽기쉬운 비동기코드 # forEach Javascript에서 비동기를 사용할 때 Promise라는 API를 정리해 보았었는데요. 오늘은 또다른 API인 aysnc와 await에 대해서 정리해 보도록 하겠습니다. 이 글은 Promise를 알고 계시는 것이 이해하는데 필요하므로, Promise에 대해서는 아래 글을 참조해 주세요. >> Javascript의 Promise를 알아보자 #ES6 1. async와 await promise로 chaining을 해서 잘 사용하고 있었는데, 왜 다른 것이 필요한 것일까요? async와 await는 비동기코드를 Promise의 Chaining을 하지않고, 좀 더 읽기쉽고 clean한 스타일의 코드로 작성할 수 있도록 도와줍니다. 그러니까, Promise를 좀 더 쉽게 사용할 수있도록 도와주는 API라고 생각.. 2021. 4. 29.
Coroutine을 이용해 Parallel한 네트워크 호출 #Kotlin Kotlin의 Coroutine을 이용하여서 NetworkCall을 할 경우, 동시에 2개 혹은 3개의 네트워크 API를 호출해야 할 경우 어떻게 해야 할까요? 당연히 A를 먼저하고 끝나면 B를 하는 Sequential한 방법은 사용하지 않을 것이구요. Parallel하게 동시에 호출한 다음 return된 값들을 이용할 텐데요. 오늘은 이것의 방법에 대해서 정리해 보도록 하겠습니다. 1. async와 successHandler Paralllel하게 호출하여 비동기로 결과 값을 받기 위해서는, async 코루틴 빌더를 사용하여야 하는데요. 1-1. async와 successHandler의 사용 동시에 2개의 호출을 한다고 가정해 보겠습니다. 임의의 successHandler를 만들어서 async빌더에서 r.. 2020. 3. 28.
Coroutine의 Async와 await 사용시 Exception Handling에 관하여 #Kotlin Coroutine을 사용하면서 한가지 주의해야 할 부분이 있는데요. Async와 await메소드를 사용할 때, Exception Handling에 관한 부분입니다. 오늘은 이것에 관해서 정리해 보겠습니다. 1. await와 Exception Handling Async와 await를 사용하면 예상하지 못한 방식으로 Exception이 catch가 되지 않고, app이 Crash가 나는 현상이 발생하는데요. 참고로 이것은 공식문서에서와 같이 GlobalScope를 사용하면 발생하지는 않는 문제입니다. 다만, GlobalScope를 실제 프로덕트에서 사용하는 경우는 많지 않을 것이기 때문에, 이경우는 제외하였습니다. 코드를 보면서 문제를 파악해 보도록 하겠습니다. 아래와 같이 async블록에서 IOExcept.. 2020. 2. 16.