能否将Swift异步抛出表达式转换为Result类型?
异步抛出表达式能否转为Result类型?
当然可以,你给出的异步写法是完全合法的。
按照苹果开发者文档《Preserving the Results of a Throwing Expression》里的说明,同步抛出表达式可以这样转为Result类型:
let singleSample = Result { try UnreliableRandomGenerator().random() }
对应到异步抛出的场景,只需要在闭包内的抛出调用前加上await关键字即可,写法如下:
let singleSample = Result { try await UnreliableRandomGenerator().random() }
Swift的Result类型支持接收异步抛出的闭包,会自动把异步操作的成功返回值或抛出的错误包装成Result<Success, Error>实例——成功时存储操作的返回值,失败时捕获对应的错误。
内容的提问来源于stack exchange,提问作者softshipper
相关产品推荐
相关产品推荐

