如何在swift中使用async/await同时运行调用多个API?

How to run multiple API call simultaneously using async/await in swift?

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

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

上述案例中的问题是仅在获取配置文件数据后才获取 CardDetails。

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

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

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

现在,为了使用 profileData 和 userCardData,我们需要使用 await,如果数据已获取并可用,它将立即 return,或者暂停直到数据可用。

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

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