Redux saga:是什么机制使得Redux saga中间件能够等待而不阻塞其他一切

Redux saga:是什么机制使得Redux saga中间件能够等待而不阻塞其他一切,redux,redux-saga,Redux,Redux Saga,Redux saga中间件给我们的感觉就像它运行在一个单独的线程上。当它被告知等待saga(生成器函数)发送某个动作时,它将暂停saga,直到发送感兴趣的动作。Single js runtime是单线程的,saga中间件如何等待一个动作被调度,同时又不阻止其他一切?等待动作的工作原理如下: 对于任何take()。一个条目包含模式和挂起的生成器 在任何动作分派上,中间件都会根据takers数组检查动作。计划运行匹配的发电机 这是一种异步等待,不需要阻塞任何内容。您可以提供一个链接来支持您的答案吗?

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

等待动作的工作原理如下:

  • 对于任何
    take()。一个条目包含模式和挂起的生成器
  • 在任何动作分派上,中间件都会根据takers数组检查动作。计划运行匹配的发电机

  • 这是一种异步等待,不需要阻塞任何内容。

    您可以提供一个链接来支持您的答案吗?是的,redux saga sources:揭示了
    take()
    实际上是一个带有“标准频道”的take。通道逻辑处于激活状态。还有一些有趣的事情。不像我解释的那么简单,但一般来说,一切都是通过回调实现的。