【发布时间】:2021-10-08 07:04:34
【问题描述】:
考虑下面的代码:
class UserProfile
{
private var img: UIImage? {
didSet { /* update ui */ }
}
private var bio: String? {
didSet { /* update ui */ }
}
private func loadImage() async -> UIImage? {
// ...
}
private func loadBio() async -> String? {
// ...
}
public func loadData() async {
async let img = loadImage()
async let bio = loadBio()
self.img = await img
self.bio = await bio
}
}
虽然这确实并行运行加载例程,但分配结果是同步的:self.bio 将始终在 self.img 之后分配。这意味着 bio 的 UI 将不得不等待图像被加载。我希望这些彼此分离。完成处理程序在这里是理想的,但我们使用的是异步 API。我怎样才能让作业按完成的顺序进行?
【问题讨论】:
标签: ios swift async-await