RxSwift<7> – 장면 시퀀스 요약
let controlEventOB = self.btn.rx.controlEvent(.touchUpInside)
controlEventOB.subscribe { (reslut) in
print(" :\(reslut)
\(Thread.current)")
}.disposed(by: disposeBag)
controlEventOB.subscribe { (reslut) in
print(" :\(reslut)
\(Thread.current)")
}.disposed(by: self.disposeBag)
binder
let observer : AnyObserver = AnyObserver { (event) in
print("observer :\(Thread.current)")
switch event{
case .next(let isHidden) :
print(" , label ")
self.label.isHidden = isHidden
case .error(let error) :
print("\(error)")
case .completed :
print(" ")
}
}
let binder = Binder(self.label) { (lab, isHidden) in
print("Binder :\(Thread.current)")
lab.isHidden = isHidden
}
let observable = Observable.create { (ob) -> Disposable in
ob.onNext(true)
ob.onError(NSError.init(domain: "com.lgcoooci.cn", code: 10086, userInfo: nil))
ob.onCompleted()
return Disposables.create()
}.observeOn(ConcurrentDispatchQueueScheduler(queue: DispatchQueue.global()))
// observable.bind(to: observer).disposed(by: self.disposeBag)
observable.bind(to: binder).disposed(by: self.disposeBag)
Driver는 주로 UI 레이어를 단순화하기 위한 코드입니다.그러나 만약 당신이 만나는 서열에 다음과 같은 특징이 있다면:
let result = self.textFiled.rx.text.orEmpty
.asDriver() //
.throttle(.milliseconds(500))
.flatMap {
self.dealwithData(inputText: $0)
.asDriver(onErrorJustReturn: " ")
}
// label
result.map { " :\(($0 as! String).count)" }
.drive(self.label.rx.text)
.disposed(by: disposeBag)
// button
result.map { ($0 as! String) }
.drive(self.btn.rx.title())
.disposed(by: disposeBag)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.