如何使用 async let 对两种不同类型执行两个异步操作?迅速

Jak*_*cki 3 ios swift

有没有办法使用async let语法对两种不同类型执行异步操作,以便这两种方法并行运行?

我也尝试过使用任务组,但无法弄清楚

    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

Run Code Online (Sandbox Code Playgroud)

mat*_*att 5

改变

\n
await try options, variants // Wrong syntax\n
Run Code Online (Sandbox Code Playgroud)\n

\n
let result = (await options, await variants)\n
Run Code Online (Sandbox Code Playgroud)\n

或者,如果您正在等待的任何一件事也需要try,请将其放在相应的之前await。例如,如果他们try需要,你会说

\n
let result = (try await options, try await variants)\n
Run Code Online (Sandbox Code Playgroud)\n

现在 result 是表示返回值的两个值的元组result.0\xe2\x80\x94是options值,result.1variants值。

\n

重要的是,在两个值并行返回 \xe2\x80\x94之前,它result没有任何价值。 async let

\n