Ios Reactive5 flatMap observeValues块未调用 override func viewDidLoad(){ commitButton.reactive.controlEvents(.touchUpInside).flatMap(.latest){(button)->输入信号 返回self.createSignInSignal() }.观察值({ //没有打电话 打印(“登录结果:\($0)”) }) } func signin(名称:String,密码:String,结果:((Bool)->Void)){ ... } //创建登录信号 私有函数createSignInSignal()->信号{ let(signInSignal,observators)=Signal.pipe() self.sign(名称:nameTextField.text!,密码:passworkTextField.text!,结果:({success in 发送(值:成功) Observators.sendCompleted() })) 返回信号信号 }
单击登录按钮时,FlatMap observeValues块未调用。当我使用map时,它工作得很好,我知道map和flatmap之间的区别,如何让代码使用flatmap工作Ios Reactive5 flatMap observeValues块未调用 override func viewDidLoad(){ commitButton.reactive.controlEvents(.touchUpInside).flatMap(.latest){(button)->输入信号 返回self.createSignInSignal() }.观察值({ //没有打电话 打印(“登录结果:\($0)”) }) } func signin(名称:String,密码:String,结果:((Bool)->Void)){ ... } //创建登录信号 私有函数createSignInSignal()->信号{ let(signInSignal,observators)=Signal.pipe() self.sign(名称:nameTextField.text!,密码:passworkTextField.text!,结果:({success in 发送(值:成功) Observators.sendCompleted() })) 返回信号信号 },ios,swift,flatmap,reactive,Ios,Swift,Flatmap,Reactive,单击登录按钮时,FlatMap observeValues块未调用。当我使用map时,它工作得很好,我知道map和flatmap之间的区别,如何让代码使用flatmap工作 override func viewDidLoad() { commitButton.reactive.controlEvents(.touchUpInside).flatMap(.latest) { (button) -> Signal<Bool, NoError> in retu
override func viewDidLoad() {
commitButton.reactive.controlEvents(.touchUpInside).flatMap(.latest) { (button) -> Signal<Bool, NoError> in
return self.createSignInSignal()
}.observeValues({
// did not call
print("Sign in result: \($0)")
})
}
func signin(name: String, password: String, result: ((Bool)->Void)) {
...
}
// create SignIn Signal
private func createSignInSignal() -> Signal<Bool, NoError> {
let (signInSignal, observers) = Signal<Bool, NoError>.pipe()
self.signin(name: nameTextField.text!, password: passworkTextField.text!, result: ({success in
observers.send(value: success)
observers.sendCompleted()
}))
return signInSignal
}