【发布时间】:2018-12-21 06:55:23
【问题描述】:
Redux-saga 中间件给我们的感觉就好像它运行在一个单独的线程上。当它被告知等待某个动作被 saga(生成器函数)分派时,它会暂停 saga,直到分派感兴趣的动作。单个 js 运行时是单线程的,saga 中间件如何等待一个动作被调度,同时又不阻塞其他所有东西?
【问题讨论】:
标签: redux redux-saga
Redux-saga 中间件给我们的感觉就好像它运行在一个单独的线程上。当它被告知等待某个动作被 saga(生成器函数)分派时,它会暂停 saga,直到分派感兴趣的动作。单个 js 运行时是单线程的,saga 中间件如何等待一个动作被调度,同时又不阻塞其他所有东西?
【问题讨论】:
标签: redux redux-saga
等待操作的工作方式如下:
take() 效果,redux-saga 中间件在 takers 数组中创建一个条目。一个条目包含模式和暂停的生成器。这是不涉及阻塞任何东西的异步等待。
【讨论】:
take() 实际上是一个带有“标准通道”的镜头。频道逻辑在channel.js。 effectRunnerMap.js 中还有一些有趣的东西。