gpt4 book ai didi

ios - 使用 RxSwift 分配属性

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:03:42 25 4
gpt4 key购买 nike

假设我们使用下一页从服务器检索联系人列表:

retrieveContacts()
.subscribeOn(ConcurrentDispatchQueueScheduler(qos: .background))
.observeOn(MainScheduler.instance)
.subscribe(onNext: { [weak self] contacts, nextPage in
self?.nextPage = nextPage
// do something with contacts
})
.disposed(by: disposeBag)

现在我们想将这些联系人传递给其他可观察对象,但同时我们必须将 self.nextPage 分配给新的 nextPage。我们可以这样在后台做:

retrieveContacts()
.subscribeOn(ConcurrentDispatchQueueScheduler(qos: .background))
.observeOn(MainScheduler.instance)
.map { [weak self] contacts, nextPage in
self?.nextPage = nextPage
return Observable.just(contacts)
}
.observeOn(ConcurrentDispatchQueueScheduler(qos: .background))
.map { contacts in
// do something with contacts but now on background
}

有没有更好的方法通过改变.observeOn方法中的线程来分配属性?

最佳答案

let observable = retrieveContacts()
.subscribeOn(ConcurrentDispatchQueueScheduler(qos: .background))
.share()

observable.observeOn(MainScheduler.instance)
.subscribe(onNext: { [weak self] contacts, nextPage in
self?.nextPage = nextPage
// do something with nextPage
})

observable.observeOn(ConcurrentDispatchQueueScheduler(qos: .background))
.subscribe(onNext: { [weak self] contacts, nextPage in
self?.contacts = contacts
// do something with contacts
})

关于ios - 使用 RxSwift 分配属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49643251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com