zoukankan      html  css  js  c++  java
  • 监听多个信号,处理结果

    场景1:界面有多个网络请求,当所有网络请求都完成时,才能展示界面。

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        RACSignal *signalA = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
            // requestA()
            dispatch_async(dispatch_get_global_queue(0, 0), ^{
                [NSThread sleepForTimeInterval:3.0];
                [subscriber sendNext:@"网络A加载完成"];
            });
            return [RACDisposable disposableWithBlock:^{
                NSLog(@"取消A信号");
            }];
        }];
        RACSignal *signalB = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
            // requestB()
            dispatch_async(dispatch_get_global_queue(0, 0), ^{
                [NSThread sleepForTimeInterval:5.0];
                [subscriber sendNext:@"网络B加载完成"];
            });
            return [RACDisposable disposableWithBlock:^{
                NSLog(@"取消B信号");
            }];
        }];
    
        [self rac_liftSelector:@selector(responseA:B:) withSignalsFromArray:@[signalA, signalB]];
    
    }
    
    - (void)responseA:(id)a B:(id)b {
        NSLog(@"%@, %@", a, b);
    }
  • 相关阅读:
    RabbitMQ知识梳理
    feign.FeignException: status 400 reading
    rabbitmq监控之消息确认ack
    Docker 安装redis mysql rabbitmq
    linux搭建GitLab
    杀死服务进程并重新启动,同时监听日志打印
    MySQL数据库连接报错
    idea: unable to import maven project
    线程池ThreadPool实战
    【2-SAT】URAL
  • 原文地址:https://www.cnblogs.com/coolcold/p/7649269.html
Copyright © 2011-2022 走看看