ReactiveCocoa简介6,添加附加操作(Adding side-effects)

前端之家收集整理的这篇文章主要介绍了ReactiveCocoa简介6,添加附加操作(Adding side-effects)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在一个next事件发生时执行的逻辑,而该逻辑并不改变事件本身。


[[[[self.signInButton
   rac_signalForControlEvents:UIControlEventTouchUpInside]
   doNext:^(id x){
     self.signInButton.enabled =NO;
     self.signInFailureText.hidden =YES;
   }]
   flattenMap:^id(id x){
     return[self signInSignal];
   }]
   subscribeNext:^(NSNumber*signedIn){
     self.signInButton.enabled =YES;
     BOOL success =[signedIn boolValue];
     self.signInFailureText.hidden = success;
     if(success){
       [self performSegueWithIdentifier:@"signInSuccess" sender:self];
     }
   }];

你可以看到doNext:是直接跟在按钮点击事件的后面。而且doNext: block并没有返回值。因为它是附加操作,并不改变事件本身。

上面的doNext: block把按钮置为不可点击,隐藏登录失败提示。然后在subscribeNext: block里重新把按钮置为可点击,并根据登录结果来决定是否显示失败提示

猜你在找的React相关文章