iOS/Swift 상식

Async/Await

HJ39 2023. 7. 23. 01:59

async는 함수가 비동기로 처리된다는 것을 의미한다.

 

await은 마킹된 곳은 potential suspension point(잠재적 일시 중단 지점)로 지정된다.

async로 선언한 함수가 완료될 때까지 일시 중지 되는 지점이다.

 

 

□ 예시

func asyncTest() async throws -> String {
    try await Task.sleep(nanoseconds: 3_000_000_000) //3초
    return "sleep 끝"
}

print("before task")
Task{
    let string: String = try await asyncTest()
    print(string)
}
print("after task")

// 출력
// before task
// after task
// sleep 끝

asyncTest() 함수는 3초 뒤에 "sleep 끝"을 출력한다.

 

 

※ 참고

  1. https://jeong9216.tistory.com/498