重新组织一下语言,再问一次这个问题。

来源:

慕前端9039556

2020-09-30

http://img1.sycdn.imooc.com/szimg/5f741679081a52e015012001.jpg
上一个问题(也是这张图的)可能是我描述的不太清楚。我重新组织语言再提一次。

就是第一条绿线执行了,newState不是Completed。所以进不了第二条绿线的位置。然后您直接返回了disposable。newState虽然注册上了新状态但是没有用到。直接返回了disposable,这块的玄机没想明白。

写回答

2回答

bennyhuo

2020-09-30

一定要自己动手调一下代码,光看书,你可能会选择性忽略掉一些很关键的细节。

0
3
慕前端9039556
非常感谢!
2020-10-02
共3条回复

bennyhuo

2020-09-30

如果走了第二条绿线的逻辑,表示注册回调的时候已经是完成状态,直接调用就行。

否则,把回调存起来,我们存到了state当中,你要看下from(prev).with(disposable)的实现,实际上把这个对象存起来了。

0
3
bennyhuo
回复
慕前端9039556
始终记住这里只是一个回调的注册,回调会在resumeWith当中统一调用。
2020-10-02
共3条回复

学会Kotlin 突破开发语言瓶颈

如果有一门语言可以取代Java,那么它一定是Kotlin。

1695 学习 · 447 问题

查看课程