如何在 RxSwift 中初始化一个 observable 属性?
How do I initialize an observable property in RxSwift?
我觉得这很费解。来自 ReactiveCocoa 我希望有这样的可能。
如何将 RxSwift observable 初始化为 5?
我现在无法测试它,但是 Observable.just
不是您正在寻找的功能吗?
Observable 创建的来源:github link
当然,如果你想修改的话,也可以使用Variable(5)
在一般的Rx中,有一个BehaviorSubject用来存储最后一个值
特别是在 RxSwift 中,还有一个 Variable,它是 BehaviorSubject 的包装器
在此处查看两者的描述 - https://github.com/ReactiveX/RxSwift/blob/master/Documentation/GettingStarted.md
因为我正在学习 RxSwift,所以我 运行 关注了这个话题。你可以像这样初始化一个 observable 属性:
var age = Variable<Int>(5)
并将其设置为可观察对象:
let disposeBag = DisposeBag()
private func setupAgeObserver() {
age.asObservable()
.subscribe(onNext: {
years in
print ("age is \(years)")
// do something
})
.addDisposableTo(disposeBag)
}
在 RxSwift 中 Variable
已弃用。使用 BehaviorRelay
或 BehaviorSubject
您可以通过多种方式创建流:
主要途径
Observable<Int>.create { observer -> Disposable in
// Send events through observer
observer.onNext(3)
observer.onError(NSError(domain: "", code: 1, userInfo: nil))
observer.onCompleted()
return Disposables.create {
// Clean up when stream is deallocated
}
}
快捷方式
Observable<Int>.empty() // Completes straight away
Observable<Int>.never() // Never gets any event into the stream, waits forever
Observable<Int>.just(1) // Emit value "1" and completes
Through Subjects(在 ReactiveSwift 中又名 Property
/ MutableProperty
)
Variable
在 RxSwift 4 中被弃用,但它只是 BehaviourSubject 的包装器,所以你可以使用它。
有2个最常用的科目
BehaviorSubject
- 它将发出当前值和即将到来的值。因为它会发出当前值,所以需要用值 BehaviorSubject<Int>(value: 0)
初始化
PublishSubject
- 它将发出即将到来的值。初始化时不需要初始值 PublishSubject<Int>()
然后您可以在主题实例上调用 .asObservable()
以获取可观察对象。
我觉得这很费解。来自 ReactiveCocoa 我希望有这样的可能。
如何将 RxSwift observable 初始化为 5?
我现在无法测试它,但是 Observable.just
不是您正在寻找的功能吗?
Observable 创建的来源:github link
当然,如果你想修改的话,也可以使用Variable(5)
在一般的Rx中,有一个BehaviorSubject用来存储最后一个值
特别是在 RxSwift 中,还有一个 Variable,它是 BehaviorSubject 的包装器
在此处查看两者的描述 - https://github.com/ReactiveX/RxSwift/blob/master/Documentation/GettingStarted.md
因为我正在学习 RxSwift,所以我 运行 关注了这个话题。你可以像这样初始化一个 observable 属性:
var age = Variable<Int>(5)
并将其设置为可观察对象:
let disposeBag = DisposeBag()
private func setupAgeObserver() {
age.asObservable()
.subscribe(onNext: {
years in
print ("age is \(years)")
// do something
})
.addDisposableTo(disposeBag)
}
在 RxSwift 中 Variable
已弃用。使用 BehaviorRelay
或 BehaviorSubject
您可以通过多种方式创建流:
主要途径
Observable<Int>.create { observer -> Disposable in
// Send events through observer
observer.onNext(3)
observer.onError(NSError(domain: "", code: 1, userInfo: nil))
observer.onCompleted()
return Disposables.create {
// Clean up when stream is deallocated
}
}
快捷方式
Observable<Int>.empty() // Completes straight away
Observable<Int>.never() // Never gets any event into the stream, waits forever
Observable<Int>.just(1) // Emit value "1" and completes
Through Subjects(在 ReactiveSwift 中又名 Property
/ MutableProperty
)
Variable
在 RxSwift 4 中被弃用,但它只是 BehaviourSubject 的包装器,所以你可以使用它。
有2个最常用的科目
BehaviorSubject
- 它将发出当前值和即将到来的值。因为它会发出当前值,所以需要用值 BehaviorSubject<Int>(value: 0)
PublishSubject
- 它将发出即将到来的值。初始化时不需要初始值 PublishSubject<Int>()
然后您可以在主题实例上调用 .asObservable()
以获取可观察对象。