例如,我当前的实现如下所示:
- (RACSignal *)getPlaylist {
return [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
[[[buttonClickSignal
flattenMap:^(UIButton *sender) {
return [self logInWithUsername:username password:password];
}]
flattenMap:^(NSDictionary *json) {
return [self fetchPlaylistForToken:token];
}]
subscribeNext:^(NSDictionary *json) {
[subscriber sendNext:json];
[subscriber sendCompleted];
}];
return nil;
}];
}如何在不使用RACSignal createSignal方法的情况下返回新信号?
发布于 2016-03-11 10:26:14
为什么不直接返回映射的buttonClickSignal呢?我不认为这有什么问题:
- (RACSignal *)getPlaylist {
return [[buttonClickSignal
flattenMap:^(UIButton *sender) {
return [self logInWithUsername:username password:password];
}]
flattenMap:^(NSDictionary *json) {
return [self fetchPlaylistForToken:token];
}];
}由于您现在似乎忽略了错误,因此如果有任何flattenMapped发出错误信号,那么您当前的实现将永远不会完成。
https://stackoverflow.com/questions/35930970
复制相似问题