Map
- 每个Signal Producer保存了上一个Signal Producer的引用(通过startHandler的closure保存)
- 最顶端的signal Producer保存了pipe产生的observer的引用
- observer保存了signal的引用
- signal 保存了所有observers的引用
- observers很可能就是下一级的signal
- 这样一来每次 pipe产生的observer被发信息
- 对应的signal就知道了,传给所有的observers
- observers有map产生的signal,这样一来他们也就知道了
- 一直到最末段传给了最后一个observer(我们定义其行为)
FlatMap
- 其实就是observers里可能有个observer的行为是形成一个signal Producer并把它start了
(过程由用户提供, 且每次接受一个event就形成一个)然后再来个observer监听所有产生的signal Producer 产生的所有的event
Lift
- 其实就是给出一个signal producer每次上一个signal producer产生一个signal,就把它transform(用户提供)了, 然后把transform过得signal传给
pipe 产生的 observer