美文网首页
信号的高阶操作

信号的高阶操作

作者: 开发界小学生 | 来源:发表于2018-10-16 16:30 被阅读0次

信号的升阶

  RACSignal *signal = [RACSignal return:@"1"];
    RACSignal *signaHightOrder = [RACSignal return:signal];
    RACSignal *anthoerSig = [signaHightOrder map:^id _Nullable(id  _Nullable value) {
        NSLog(@"----%@",value);
        return [RACSignal return:value];
    }];
    [anthoerSig subscribeNext:^(RACSignal *  _Nullable x) {
             [x subscribeNext:^(id  _Nullable x) {
            
        }];
    }];

信号的降阶

   UITextField * search = [[UITextField alloc] init];
    RACSignal * serrchSig = search.rac_textSignal;
   
    RACSignal * requestSig = [serrchSig map:^id _Nullable(id  _Nullable value) {
        NSString * urlStr = @"";
        NSURL * url = [NSURL URLWithString:urlStr];
        NSURLRequest * req  = [NSURLRequest requestWithURL:url];
        return [NSURLConnection rac_sendAsynchronousRequest:req]
    }];
    
    requestSig = [requestSig switchToLatest];

 _sigA = [RACSignal return:@(NO)];
  
    RACSignal * thenSig = [RACSignal return:@(YES)];
    RACSignal * eleSig = [RACSignal return:@"123"];
   

    RACSignal * sig = [[_sigA map:^id _Nullable(NSNumber * value) {
        return value.boolValue ? thenSig : eleSig;
    }] switchToLatest];
    [sig subscribeNext:^(id  _Nullable x) {
        NSLog(@"%@",x);
    }];
// 改变某个值的个数
    RACSignal *mappSingal = [[tupleSig map:^id _Nullable(NSNumber * value) {
        return [[[RACSignal return:value] repeat] take:value.integerValue];
    }] flatten];
    
    [mappSingal subscribeNext:^(id  _Nullable x) {
        NSLog(@"%@",x);
    }];

// 将一个值改为一个错误
    RACSignal *mapSinga1 = [tupleSig map:^id _Nullable(NSNumber * value) {
        if (value.integerValue == 0) {
            return [RACSignal error:[NSError errorWithDomain:@"0" code:0 userInfo:nil]];
        }else
        {
            return [RACSignal return:value];
        }
    }];
    [mapSinga1 subscribeNext:^(id  _Nullable x) {
        NSLog(@"%@",x);
    } error:^(NSError * _Nullable error) {
        NSLog(@"%d",error.code);
    }];

相关文章

网友评论

      本文标题:信号的高阶操作

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