Avatar
https://docs.swift.org/swift-book/ReferenceManual/Expressions.html#ID393 Writing throws or async in a closure expression explicitly marks a closure as throwing or asynchronous. { (parameters) async throws -> return type in statements } If the body of a closure includes a try expression, the closure is understood to be throwing. Likewise, if it includes an await expression, it’s understood to be asynchronous.