Why canât we call async functions using async var?
2021ë
11ì 28ìŒAbout 2 min
Why canât we call async functions using async var? êŽë š
Swift Concurrency by Example
Back to Home
Why canât we call async functions using async var? | Swift Concurrency by Example
Why canât we call async functions using async var?
Updated for Xcode 15
Swiftâs async let
syntax provides short, helpful syntax for running lots of work concurrently, allowing us to wait for them all later on. However, it only works as async let
â itâs not possible to use async var
.
If you think about it, this restriction makes sense. Consider pseudocode like this:
func fetchUsername() async -> String {
// complex networking here
"Taylor Swift"
}
async var username = fetchUsername()
username = "Justin Bieber"
print("Username is \(username)")
That attempts to create a variable asynchronously, then writes to it directly. Have we cancelled the async work? If not, when the async work completes will it overwrite our new value? Do we still need to use await
when reading the value even after weâve explicitly set it?
This kind of code would create all sorts of confusion, so itâs just not allowed â async let
is our only option.
Similar solutionsâŠ
How to call async throwing functions | Swift Concurrency by Example
How to call async throwing functions
How to call an async function using async let | Swift Concurrency by Example
How to call an async function using async let
How to create and call an async function | Swift Concurrency by Example
How to create and call an async function
How to fix the error âasync call in a function that does not support concurrencyâ | Swift Concurrency by Example
How to fix the error âasync call in a function that does not support concurrencyâ
How to use continuations to convert completion handlers into async functions | Swift Concurrency by Example
How to use continuations to convert completion handlers into async functions