Redux-saga:什么机制使Redux-saga中间件可以等待而不阻塞其他所有内容

时间:2018-12-20 20:26:59

标签: redux redux-saga

Redux-saga中间件给我们的感觉就像它在单独的线程上运行。当被告知要等待saga(生成器函数)调度某个动作时,它将暂停saga,直到调度了感兴趣的动作为止。单js运行时是单线程的,传奇的中间件如何等待操作被分派,同时又不阻塞其他所有内容?

1 个答案:

答案 0 :(得分:2)

等待动作的过程如下:

  1. 对于任何take()效果,redux-saga中间件都会在 takers 数组中创建一个条目。条目包含模式和挂起的生成器。
  2. 在执行任何动作时,中间件都会根据 takers 数组检查动作。匹配的生成器计划运行。

这是异步等待,不涉及任何阻塞。