源码学习之: 手写saga

2020-05-10  本文已影响0人  风雅欢乐

saga的基础知识方面内容较多, 具体可参考官方文档或是网上其他资料, 此处只进行简单梳理.

saga提供了很多指令, 每个指令本质上就是一个函数, 该函数调用后, 会返回一个指令对象, saga会接收到该指令对象, 进行各种处理.

一旦saga任务完成(生成器函数运行完成), 则saga中间件一定结束
指令前面必须使用yield, 确保该指令的返回结果会被saga控制

常见saga指令:

saga中间件的原理:

  1. 首先启动一个任务
  2. 当action触发时, 直接将action分发到下一个中间件

源码分析:

runSaga: 一个函数, 用于启动一个任务, 一个任务的本质是一个generator function, runSage在内部得到该函数的generator, 并控制生成器的每一次迭代.

saga中间件代码文件划分较多, 总代码行数较多, 具体代码见github仓库(包含整个redux和redux中间件相关的核心逻辑手写代码): 点击这里.

上一篇 下一篇

猜你喜欢

热点阅读