我在应用程序进入前台时执行任务。
我还希望在初始化视图模型后立即执行此任务。
如何编写此代码以避免复制和粘贴任务代码?
当前代码如下所示:
init(dependencies: Dependencies) {
self.dependencies = dependencies
dependencies.apiClient.notificationsCount()
.map { $0.value > 0 ? String($0.value) : nil }
.bind(to: tabBadgeValue)
.disposed(by: disposeBag)
dependencies.notification.notification(for: .appWillEnterForeground)
.map { _ in () }
.flatMapLatest(dependencies.apiClient.notificationsCount)
.map { $0.value > 0 ? String($0.value) : nil }
.bind(to: tabBadgeValue)
.disposed(by: disposeBag)
}
最佳答案
您可以使用startWith
在收到第一个通知之前发出下一个事件:
init(dependencies: Dependencies) {
self.dependencies = dependencies
dependencies.notification.notification(for: .appWillEnterForeground)
.map { _ in () }
.startWith(())
.flatMapLatest(dependencies.apiClient.notificationsCount)
.map { $0.value > 0 ? String($0.value) : nil }
.bind(to: tabBadgeValue)
.disposed(by: disposeBag)
}
关于swift - RxSwift优化触发器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45030852/