iOS 개발 기록

[Concurrency] async / await 본문

iOS/비동기처리

[Concurrency] async / await

택꽁이 2023. 2. 6. 13:21
728x90

async/await

Date: 2023년 2월 1일
Tags: SwiftConcurrency

async

public func data(from url: URL, delegate: URLSessionTaskDelegate? = nil) async throws -> (Data, URLResponse)
  • async가 붙은 함수는 비동기라는 것을 나타낸다.
  • 에러를 반환할 수 있을때에는 async throws 키워드로 선언, 호출할 때에는 try await 키워드로 호출하게 된다.

await

let (data, response) = try await URLSession.shared.data(for: reqeust)
  • 비동기 함수 호출 시 잠재적 중단 시점을 지정하는 피연산자
  • 동시성 컨텍스트에서만 실행 가능하다 → 다른 async 함수에서 실행하거나 Task{} 를 통해 수동으로 실행 가능함.

참고

[Swift] async / await 동작원리

바삭한 신입들의 동시성 이야기 - Swift편

'iOS > 비동기처리' 카테고리의 다른 글

[Concurrency] AsyncStream  (0) 2023.04.07
[Concurrency]Continuation  (0) 2023.04.04
[Swift] CompletionHandler  (0) 2023.02.06