如何从订阅的 RACSignal 中获取错误值?
How to get error value from a subscribed RACSignal?
例如:
在一个控制器中,实现
func sendSuccessOrNot()->RACSignal {
// code here
}
在另一个控制器中,调用那个信号
controller.sendSuccessOrNot().subscribeNext {
}
如果 sendSuccessOrNot 在 ReactiveCocoa 中发送错误或成功值,如何检查上面的调用。
你使用的语法让我认为你正在使用 Swift,在这种情况下你不应该使用 RACSignal,你应该将你的 RACSignal 转换为带有 .toSignalProducer()
[= 的 SignalProducer 13=]
func sendSuccessOrNot() -> RACSignal {
return RACSignal.createSignal { (subscriber) -> RACDisposable! in
let test = true
if (test) {
subscriber.sendNext("Value")
subscriber.sendCompleted()
} else {
subscriber.sendError(NSError(domain: "", code: 0, userInfo: nil))
}
return RACDisposable(block: {})
}
}
controller.sendSuccessOrNot().toSignalProducer().on(next: { value in
print("next: \(value)")
},
failed: { error in
print("failed: \(error)")
}).start()
如果您仍在使用 RAC 2,那么它会是
controller.sendSuccessOrNot().subscribeNext({ value in
print("next: \(value)")
}, error: { error in
print("failed: \(error)")
})
例如:
在一个控制器中,实现
func sendSuccessOrNot()->RACSignal {
// code here
}
在另一个控制器中,调用那个信号
controller.sendSuccessOrNot().subscribeNext {
}
如果 sendSuccessOrNot 在 ReactiveCocoa 中发送错误或成功值,如何检查上面的调用。
你使用的语法让我认为你正在使用 Swift,在这种情况下你不应该使用 RACSignal,你应该将你的 RACSignal 转换为带有 .toSignalProducer()
[= 的 SignalProducer 13=]
func sendSuccessOrNot() -> RACSignal {
return RACSignal.createSignal { (subscriber) -> RACDisposable! in
let test = true
if (test) {
subscriber.sendNext("Value")
subscriber.sendCompleted()
} else {
subscriber.sendError(NSError(domain: "", code: 0, userInfo: nil))
}
return RACDisposable(block: {})
}
}
controller.sendSuccessOrNot().toSignalProducer().on(next: { value in
print("next: \(value)")
},
failed: { error in
print("failed: \(error)")
}).start()
如果您仍在使用 RAC 2,那么它会是
controller.sendSuccessOrNot().subscribeNext({ value in
print("next: \(value)")
}, error: { error in
print("failed: \(error)")
})