异步编程中的Combine框架:API适配与调度器使用
在异步编程中,我们常常会遇到需要将现有的命令式代码适配到响应式编程模型的情况,同时也需要合理地管理代码的执行线程,以确保应用程序的UI保持响应。本文将介绍如何使用Combine框架来完成这些任务。
适配第三方API到Combine
Apple为其许多API提供了Combine发布者,但对于第三方API,我们可能需要自己进行适配。例如,我们可以通过将基于闭包的Firestore API包装在 Future 中来为Combine适配获取单个文档的API。以下是一个示例,展示了如何使用新的单次Combine发布者来获取文档并将其映射到自定义的Swift结构体:
private class BookListViewModel: ObservableObject {
@Published var book = Book.empty
private var db = Firestore.firestore()
func fetchBook() {
db.collection("books").document("hitchhiker").getDocument()
.tryMap { documentSnapshot in
try documentSnapshot.data(as: Book.self)
}
.replaceError(with: Book.empty)
.assign(to:
超级会员免费看
订阅专栏 解锁全文
1329

被折叠的 条评论
为什么被折叠?



