【问题标题】:RACSignal catch to itself?RACSignal 捕捉到自己?
【发布时间】:2016-09-12 10:22:12
【问题描述】:

我有一个代表一些服务器的对象数组。他们都应该回答某个网络请求。我需要查询其中一个(其中任何一个)并为此返回一个 RACSignal,但如果它失败,我需要转到列表中的下一个。如果我发出一个从数组中获取其中一个的信号尝试发出请求,并且如果失败捕获到它自己尝试与该列表中的另一个尝试,是否可以?

【问题讨论】:

    标签: ios reactive-cocoa


    【解决方案1】:

    检查我的测试示例。我希望它对你有帮助。

        RACSignal *signal1 = [RACSignal error:nil];
        RACSignal *signal2 = [RACSignal error:nil];
        RACSignal *signal3 = [RACSignal error:nil];
        RACSignal *signal4 = [RACSignal return:@5];
    
        NSArray<RACSignal *> *signals = @[signal1,
                                          signal2,
                                          signal3,
                                          signal4];
    
        NSMutableArray<RACSignal *> *catchedSignals = [NSMutableArray array];
    
        [signals enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(RACSignal * _Nonnull signal, NSUInteger idx, BOOL * _Nonnull stop) {
            RACSignal *catchedSignal = signal;
            if (idx != signals.count-1) {
                catchedSignal = [signal catchTo:catchedSignals.firstObject];
            }
            [catchedSignals insertObject:catchedSignal atIndex:0];
        }];
    
        [catchedSignals.firstObject subscribeNext:^(id x) {
            //print 5
            NSLog(@"x = %@", x);
        }];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-15
      • 1970-01-01
      • 1970-01-01
      • 2017-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多