Async, Await에 대해서 Araboza
Async, Await
// 예시
func bringWebImageUrl(url: String) async -> URL
func processWebImage() async -> Image {
let result = await bringWebImageUrl("imageUrl")
return result
}
let image = processWebImage()
processWebImage()
실행
bringWebImageUrl(”imageUrl”)
로 데이터를 받아오는 요청
Suspension Point : 함수가 실행되는 도중 스레드를 포기한 시점
받아온 데이터 result
에 저장
result
를 return
async
는 비동기적으로 일을 처리하는 함수라는 뜻이다.await
키워드를 붙여서 ‘이곳이 비동기적으로 작업이 수행되는 곳이다’라고 명시한다.await
가 붙은 명령이 처리되는 동안 다른 작업들이 실행될 수 있도록 스레드를 포기한다.async
함수 내부에는 sync
함수가 포함될 수 있지만 반대는 불가능하다.await
키워드를 붙이면 된다.