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



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

等待操作的工作方式如下:

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

这是异步等待,不涉及阻止任何内容。

最新更新