如何在 RXSwift 中使用绑定方法?
How Can I use the Bind Method in RXSwift?
下面的示例代码抛出一个错误说明
No exact matches in call to instance method 'bind'
如何将发布主题的 onNext 绑定到我的可观察对象?
let publish = PublishSubject<Void>()
// Error Here
publish.bind(to: myMethod())
func myMethod() -> Observable<Void> {
return Observable.create{ observer in
observer.onNext(())
observer.onCompleted()
return Disposables.create()
}
}
首先,bind(to:)
方法在 RxCocoa Framework 中,因此您需要在文件中添加 import RxCocoa
。
然后,由 myMethod
创建的可观察对象将只能从 .create
块发出事件。您不能对其使用绑定。如果您需要同时包含来自您的主题和 myMethod
可观察事件的可观察事件,您可以这样做:
let thirdObservable = Observable.merge(publish, myMethod())
So what I want is everytime my publish subject emits an onNext event I want to trigger the observable of 'myMethod'
我不确定如何解释这个,但听起来你想要这样的东西:
let publish = PublishSubject<Void>()
let response = publish.flatMap { myMethod() }
response
.bind(onNext: { print([=10=]) })
func myMethod() -> Observable<Void> {
Observable.create{ observer in
observer.onNext(())
observer.onCompleted()
return Disposables.create()
}
}
但这一切似乎毫无意义,因为 myMethod()
所做的只是发出下一个事件。
下面的示例代码抛出一个错误说明
No exact matches in call to instance method 'bind'
如何将发布主题的 onNext 绑定到我的可观察对象?
let publish = PublishSubject<Void>()
// Error Here
publish.bind(to: myMethod())
func myMethod() -> Observable<Void> {
return Observable.create{ observer in
observer.onNext(())
observer.onCompleted()
return Disposables.create()
}
}
首先,bind(to:)
方法在 RxCocoa Framework 中,因此您需要在文件中添加 import RxCocoa
。
然后,由 myMethod
创建的可观察对象将只能从 .create
块发出事件。您不能对其使用绑定。如果您需要同时包含来自您的主题和 myMethod
可观察事件的可观察事件,您可以这样做:
let thirdObservable = Observable.merge(publish, myMethod())
So what I want is everytime my publish subject emits an onNext event I want to trigger the observable of 'myMethod'
我不确定如何解释这个,但听起来你想要这样的东西:
let publish = PublishSubject<Void>()
let response = publish.flatMap { myMethod() }
response
.bind(onNext: { print([=10=]) })
func myMethod() -> Observable<Void> {
Observable.create{ observer in
observer.onNext(())
observer.onCompleted()
return Disposables.create()
}
}
但这一切似乎毫无意义,因为 myMethod()
所做的只是发出下一个事件。