ios 如何用async let对两个不同的类型执行两个异步操作?Swift

92dk7w1h  于 2022-11-26  发布在  iOS
关注(0)|答案(1)|浏览(103)

是否有一种方法可以使用async let语法对两个不同的类型执行异步操作,以便这两个方法并行运行?
我也尝试过使用TaskGroup,但无法解决此问题

func getOptionsAndVariants() async {
        do {
            async let options: [ProductOption] = NetworkManager.sharedInstance.getProductOptions(product.id.description)
            async let variants: [ProductVariant] = NetworkManager.sharedInstance.getProductVariants(product.id)
            
            await try options, variants // Wrong syntax
ryoqjall

ryoqjall1#

变更

await try options, variants // Wrong syntax

结束日期

let result = (await options, await variants)

或者,如果你正在等待的两件事情中的任何一件也需要try,把它放在相应的await之前。

let result = (try await options, try await variants)

现在,result是一个由两个值组成的 tuple,表示返回值-result.0options值,result.1variants值。
重要的是,result没有值,直到两个async let值并行返回。

相关问题