Redux-Saga中的effect哪些是非阻塞的
1.Redux-Saga中的effect一共有一下类别:
export const effectTypes: { TAKE: 'TAKE' PUT: 'PUT' ALL: 'ALL‘ RACE: 'RACE' CALL: 'CALL' CPS: 'CPS' FORK: 'FORK' JOIN: 'JOIN' CANCEL: 'CANCEL' SELECT: 'SELECT' ACTION_CHANNEL: 'ACTION_CHANNEL' CANCELLED: 'CANCELLED' FLUSH: 'FLUSH' GET_CONTEXT: 'GET_CONTEXT' SET_CONTEXT: 'SET_CONTEXT' }
2.首先我们先来了解下阻塞和非阻塞的概念
非阻塞:
非阻塞意思是假如这个action中有中间件,或一些异步操作造成了store信息更新不及时,那么effects中并不会等着这些操作执行完,即会继续执行接下来的操作。
阻塞
这个是同步操作,那么effects中会等待这些操作执行完,所以接下来取的store信息一定会是最新的
3.根据源码和官网信息总结如下
| function | block |
|---|---|
| take | Blocking |
| call | Blocking |
| all | Blocking |
| put | Non-Blocking |
| putResolve | Blocking |
| fork | Non-blocking |
| cancel | Non-blocking |
| join | Blocking |
| cps | Non-blocking |

浙公网安备 33010602011771号