ios - 在 react 管道中删除嵌套的 subscribeNext

标签 ios objective-c reactive-programming reactive-cocoa

我正在尝试构建一个响应式(Reactive)管道,其中某些输入信号的变化将触发异步 Web API 请求。但我不需要在 web api 的 subscribeNext block 中执行任何操作。

它是这样的:

RACSignal *inputChanged = [[RACSignal merge:@[ RACObserve(self, input1), RACObserve(self, input2) ]] throttle:0.5];

@weakify(self)
[[[inputChanged
  subscribeNext:^(id x) {
      @strongify(self)
      [[self asyncWebAPI]
       subscribeNext:^(id x) {
       }];
  }];

这行得通。但它并不优雅,因为嵌套的 subscribeNext: 和第二个 subscribeNext 只是为了让 asyncWebAPI 成为一个热信号。

有没有更好的方法来构建这个管道?

最佳答案

查看 -flattenMap:。例如:

[[inputChanged
    flattenMap:^(id _) {
        @strongify(self);
        return [self asyncWebAPI];
    }]
    subscribeNext:^(id x) {
        // Do stuff
    }];

关于ios - 在 react 管道中删除嵌套的 subscribeNext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28322095/

相关文章:

ios - 架构 i386 的 undefined symbol : "_OBJC_CLASS_$_Analytics"

ios - 更改所有屏幕的 ViewController 后退按钮图像

objective-c - 使用 Xcode,如何跳转到对应 View 中的定义?

java - 从两个 Flux 生成 Flux<Result>

iphone - AVAudioPlayer 的方法 'play' 在 while 循环内不起作用

ios - 设置 WebView Delegate 后崩溃

iphone - 从键盘上禁用国际键盘选择按钮

ios - 如何调用 iPhone map 以获取当前位置作为起始地址的方向

java - LMax Disruptor 和 Rx Framework 概念是否并行?

angularjs - 与 Angularjs 1.X 中的 $watch 相比,rxjs observable 的性能如何?