This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func getUser() async throws -> User { | |
try await Task.sleep(nanoseconds: 1_000_000) | |
let task = Task(priority: .high) { () -> Address in | |
try await Task.sleep(nanoseconds: 1_000_000) | |
return Address(street: "FooStreet") | |
} | |
let address = try await task.value | |
return User(name: "Max", address: address) | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let task = Task(priority: .medium) { () -> String in | |
let text = try await requestTextFromServer() | |
return text | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let task = Task { () -> String in | |
let text = try await requestTextFromServer() | |
return text | |
} | |
let result = try await task.result | |
switch result { | |
case let .success(value): | |
print(value) | |
case let .failure(error): |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let task = Task { () -> String in | |
let text = try await requestTextFromServer() | |
return text | |
} | |
let newValue = try await task.value // Will only return if the Task did not throw |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Will immediatly start running after creation | |
let task = Task { () -> String in | |
let text = try await requestTextFromServer() | |
return text | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
struct ContentView: View { | |
private let formatter = { | |
let formatter = DateFormatter() | |
formatter.dateStyle = .none | |
formatter.timeStyle = .medium | |
return formatter | |
}() | |
private let timerSequence = Timer.publish(every: 1, | |
tolerance: 1, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let url = URL(string:"https://www.sebastianboldt.com") | |
let pollingSequence = URLPollingSequence(url: url!, delay: 2) | |
do { | |
for try await item in pollingSequence { | |
guard let data = item else { | |
continue | |
} | |
print(String(data: data, encoding: String.Encoding.utf8) ?? "Not decodable") | |
} | |
} catch { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
do { | |
let text = try await createText() | |
await MainActor.run { | |
// Update your UI | |
} | |
} catch { | |
print(error.localizedDescription) | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func createText() async throws -> String { | |
let text = try await requestTextFromServer() // function will be suspended | |
return text | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func createText() async throws -> String { | |
// .... | |
} |