我有一个信号,它基本上是在请求使用 NSRULSession 进行配置。当我执行 subscribeNext 时,它会完美地完成请求,但是第二次不再需要此请求。我怎么能避免呢?
问问题
162 次
3 回答
1
每次订阅您的信号时,它都会完成它的工作,除非您采取明确的措施来防止这种情况发生。听起来您在这里想要的是replayLast
操作员。此运算符将缓存您的信号的最后发出的值,并在您的信号再次订阅时发出它,而不是重做初始工作。
在此处阅读“重播”运算符:http: //spin.atomicobject.com/2014/06/29/replay-replaylast-replaylazily/
于 2015-10-29T17:33:29.323 回答
0
使用属性和其值绑定到该属性的操作。然后仅根据需要触发操作以刷新属性的值。
于 2016-09-24T16:46:46.407 回答
0
可以通过take:
操作员发出一个时间信号。您只需要传递一个参数来表示执行信号所需的次数。经过这么多的执行后,该网关将完全关闭,并且不会在subscribeNext:
块中传递更多数据。在您的情况下,此金额将等于 1。
RACSignal *requestConfigurationSignal = ...
[[requestSignal
take:1]
subscribeNext:^(id value){
NSLog(@"Request in progress")
}]
于 2015-10-29T11:21:45.787 回答