我有一个信号,基本上它所做的是使用NSRULSession请求配置。当我执行subscribeNext时,它完全满足请求,但是第二次不再需要此请求。我怎么能避免它?
答案 0 :(得分:1)
除非您做一些明确的事情以防止这种情况,否则您的信号将在每次订阅时完成其工作。听起来你想要的是replayLast
运算符。此运算符将缓存信号的最后一个发射值,并在再次订阅信号时发出,而不是重做初始工作。
阅读'重播'运营商: http://spin.atomicobject.com/2014/06/29/replay-replaylast-replaylazily/
答案 1 :(得分:0)
可以通过take:
运营商发出一次信号。您只需要传递一个参数来执行信号所需的时间。执行此类操作后,此网关将完全关闭,并且subscribeNext:
块中不会再传递任何数据。在您的情况下,此金额将等于1.
RACSignal *requestConfigurationSignal = ...
[[requestSignal
take:1]
subscribeNext:^(id value){
NSLog(@"Request in progress")
}]
答案 2 :(得分:0)
使用属性和值绑定到该属性的操作。然后根据需要触发操作以刷新属性的值。