【问题标题】:How to run multiple API call simultaneously using async/await in swift?如何在 swift 中使用 async/await 同时运行多个 API 调用?
【发布时间】:2022-01-07 08:17:29
【问题描述】:

根据 Swift 中新的结构化并发,我们可以等待在异步上下文中完成的 API 调用, 但我想同时进行多个 API 调用, 比如目前如果一个接一个地添加API调用,

profileData = await viewModel.getProfileData()
userCardData = await viewModel.getCardDetails()

上述情况的问题是 CardDetails 是在获取 profile 数据后才获取的。

【问题讨论】:

    标签: ios swift async-await swift5.5


    【解决方案1】:

    可以使用async let 来实现。 这种特殊语法允许您将多个异步调用分组并一起等待它们, 例如,

    async let profileData = viewModel.getProfileData()
    async let userCardData = viewModel.getCardDetails()
    

    上述声明表明profileDatauserCardData 将在未来某个时间点可用,就像一个承诺一样。

    现在为了使用 profileData 和 userCardData,我们需要使用 await,以防数据被获取并且可用,它会立即返回,或者它暂停直到数据可用。

    上述请求中的值可以像这样使用,

    let (fetchedProfileData, fetchedUserCardData) = try await (profileData, userCardData)
    

    【讨论】:

      猜你喜欢
      • 2021-10-02
      • 1970-01-01
      • 2021-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-06
      • 2020-09-23
      相关资源
      最近更新 更多