Redux传奇中的线程



我是一个新的Redux Saga学习者,我很困惑,如果JavaScript是单线程的,为什么Redux Sagar中有很多线程?一些资源声明它们实际上不是线程,但我想知道为什么它们被称为线程以及它们实际上是什么。

就我个人而言,我从不将sagas称为线程,而是为那些这样做的人辩护:

当应用于sagas时;线程";只是一个心理模型,而不是对引擎盖下实际发生的事情的描述。该术语强调,您可以将传奇视为一段独立的代码,与其他传奇并行执行。它不会真正并行运行(正如您所说,javascript是单线程的(,但您可以这样想。

生成器函数是一种特殊类型的函数;暂停";。它们会运行一段时间,然后通过yield语句返回,但稍后可以恢复。由于javascript是单线程的,在给定的时间只有一个生成器会运行,但redux saga将根据需要管理启动和停止它们,主要基于所调度的redux操作。

最新更新