美文网首页
RAC的Merge操纵

RAC的Merge操纵

作者: 凯司机 | 来源:发表于2021-05-06 11:20 被阅读0次

组合操作——Merge:

// 组合操作——Merge:按照信号执行时间顺序依次进行叠加,列出全部的元素。——先执行信号A到完成再执行信号B
RACSignal *signalA = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
  [subscriber sendNext:@1];
  [subscriber sendNext:@2];
  [subscriber sendNext:@4];
  // [subscriber sendError:[NSError new]];
  [subscriber sendCompleted];
  return [RACDisposable disposableWithBlock:^{
    NSLog(@"signalA完成");
  }];
}];

RACSignal *signalB = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
  [subscriber sendNext:@11];
  [subscriber sendNext:@22];
  // [subscriber sendError:[NSError new]];
  [subscriber sendNext:@44];
  [subscriber sendCompleted];
  return [RACDisposable disposableWithBlock:^{
    NSLog(@"signalB完成");
  }];
}];

//    RACSignal *signalC = [signalA merge:signalB];
//    RACSignal *signalC = [RACSignal merge:@[signalA, signalB]];
RACSignal *signalC = [RACSignal merge:RACTuplePack(signalA, signalB)];
[[signalC subscribeNext:^(id x) {
  NSLog(@"subscribeNext:%@",x);
}] dispose];

2021-04-15 10:52:46.576964+0800 xxxxxx[3448:1034576] [DYMTLInitPlatform] platform initialization successful

2021-04-15 10:52:47.502916+0800 xxxxxx[3448:1034461] subscribeNext:1

2021-04-15 10:52:47.502953+0800 xxxxxx[3448:1034461] subscribeNext:2

2021-04-15 10:52:47.502963+0800 xxxxxx[3448:1034461] subscribeNext:4

2021-04-15 10:52:47.504275+0800 xxxxxx[3448:1034461] signalA完成

2021-04-15 10:52:47.504624+0800 xxxxxx[3448:1034461] subscribeNext:11

2021-04-15 10:52:47.504649+0800 xxxxxx[3448:1034461] subscribeNext:22

2021-04-15 10:52:47.504660+0800 xxxxxx[3448:1034461] subscribeNext:44

2021-04-15 10:52:47.504689+0800 xxxxxx[3448:1034461] signalB完成

Merge综合应用

// Merge综合应用:后缀的YES和NO是否需要动画
RACSignal *appearSignal = [[self rac_signalForSelector:@selector(viewWillAppear:)] mapReplace:@YES];
RACSignal *disapperSignal = [[self rac_signalForSelector:@selector(viewWillDisappear:)] mapReplace:@NO];
RACSignal *activeSignal = [RACSignal merge:@[appearSignal, disapperSignal]];

相关文章

网友评论

      本文标题:RAC的Merge操纵

      本文链接:https://www.haomeiwen.com/subject/jwmirltx.html