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 끝"을 출력한다.
※ 참고
'iOS > Swift 상식' 카테고리의 다른 글
Swift에서 타입 안전성(type safety)은 어떤 방식으로 보장되나요? (0) | 2023.07.23 |
---|---|
Optional Chaining과 nil-coalescing operator(??)의 차이점과 사용 시 주의사항은 무엇인가요? (0) | 2023.06.26 |
Codable (0) | 2023.06.26 |
Result Type (0) | 2023.03.25 |
Some (0) | 2023.03.25 |