2016-03-11 27 views
0

例如返回RACSignal,我目前的實現是象下面這樣:如何不使用[RACSignal createSignal]

- (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]方法返回一個新的信號?

回答

3

爲什麼不只是返回映射的buttonClickSignal? 我看不出眼前這個任何問題:

- (RACSignal *)getPlaylist { 
    return [[buttonClickSignal 
       flattenMap:^(UIButton *sender) { 
        return [self logInWithUsername:username password:password]; 
       }] 
       flattenMap:^(NSDictionary *json) { 
        return [self fetchPlaylistForToken:token]; 
       }]; 
} 

既然你出現,現在被忽略的錯誤您目前的實施將永遠不會真正完成,如果任何flattenMapped信號錯誤。

相關問題