holajiawei / notes

simple notes repo
2 stars 0 forks source link

redux-saga源码解析ver0.15.6 #3

Open holajiawei opened 7 years ago

holajiawei commented 7 years ago

整体结构

源码目录为src,其中在src目录下面的三个文件effect、index、utils主要用作export形成命名空间

holajiawei commented 7 years ago

关键代码文件

io.js 、proc.js 、 channel.js 这三个比较关键。

holajiawei commented 7 years ago

channel.js

这里面会牵涉到redux-saga里面很重要的几个数据结构,channel、buffer、scheduler,之后分析源码时会用到很多。 代码里提供了三种channel类型,分别是channel、eventChannel和stdChannel这三种。这三者之间的关系可以理解为后者为前者的增强型特例。(原作者们已经着手重构stdChannel了,所以之后版本会变化#707)

END是一种action,它的作用主要是中断take监听的,并不是终止所有blocking调用的,所以这点需要注意。

buffer是比较低级的数据结构,为channel所服务,提供一个可扩展的有数量限制的存储结构,具有不同的溢出策略