channel是通道的意思,redux-saga采用该理念设计,redux-saga的channel包括了:
channel 通用通道(波段)
定义了takers(存放用于执行读取缓存的函数)
put(input) 消费任务 执行函数为空时,输入放入环形缓存区,反之输入作为takers第一个执行函数的参数执行
take(cb) 生成任务 环形缓存区为空时,cb放入takers,否则取出环形缓存区放入cb执行 cb(buffer.take())
flush(cb) 取出所有缓存执行
close 关闭所有通道,takers置为空数组
eventChannel 事件通道
multicastChannel 多播通道
stdChannel 标准通道
说明:redux-saga中采用了环形缓存,channel生成和消费任务的时候会和buffer结合