我正在尝试构建一个反应式管道,其中某些输入信号的更改将触发异步Web api请求。但我不需要在web api的subscribeNext块中执行任何操作。
它的外观如下:
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成为一个热门信号。
有没有更好的方法来构建这个管道?
答案 0 :(得分:1)
结帐-flattenMap:
。例如:
[[inputChanged
flattenMap:^(id _) {
@strongify(self);
return [self asyncWebAPI];
}]
subscribeNext:^(id x) {
// Do stuff
}];