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 키워드를 붙이면 된다.