Objective-C

信号的高阶操作

2019-07-02  本文已影响0人  Jimmy_L_Wang

升阶和降阶操作

image.png

创建于订阅高阶信号

  RACSignal *signal = [RACSignal return:@[@1,@2,@3,@4]];
    
    //创建高阶信号
    RACSignal *highOrderSignal = [RACSignal return:signal];
    RACSignal *anotherSignal = [signal map:^id _Nullable(id  _Nullable value) {
        return [RACSignal return:value];
    }];
    
    //订阅高阶信号
    [highOrderSignal subscribeNext:^(RACSignal *  _Nullable aSignal) {
        [aSignal subscribeNext:^(id  _Nullable x) {
            
        }];
    }];

降阶操作 -- SwitchToLatests

降阶操作.png

实例

image.png image.png

降阶操作 If/then/else

image.png

If/then/else 本质&类似操作

image.png

降阶操作 - Flatten

image.png image.png image.png image.png image.png image.png image.png

FlattenMap的重要性

image.png image.png image.png

FlattenMap与Monad、bind

image.png image.png image.png

有用的高阶操作

image.png
上一篇 下一篇

猜你喜欢

热点阅读