Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 通量调度器保证同步操作意味着什么?_Reactjs_Reactjs Flux - Fatal编程技术网

Reactjs 通量调度器保证同步操作意味着什么?

Reactjs 通量调度器保证同步操作意味着什么?,reactjs,reactjs-flux,Reactjs,Reactjs Flux,在使用(我相信的)基于我构建的框架构建了一些应用程序之后,我想知道当: Mozilla说: “调度程序向感兴趣的存储发送操作。仅一个 可以随时处理操作” 或者Facebook说: “我们需要调度器能够调用存储B的回调, 并完成该回调,然后继续使用Store A 我之所以感到困惑是因为Javascript的并发模型只允许一次发生一件事,并确保当前操作的调用堆栈在继续处理任务队列之前耗尽 所以我们可以免费得到Facebook和Mozilla说他们的调度员给我们的东西。我们无法避免。我们为什么要把它当

在使用(我相信的)基于我构建的框架构建了一些应用程序之后,我想知道当:

Mozilla说:

“调度程序向感兴趣的存储发送操作。仅一个 可以随时处理操作

或者Facebook说:

“我们需要调度器能够调用存储B的回调, 并完成该回调,然后继续使用Store A

我之所以感到困惑是因为Javascript的并发模型只允许一次发生一件事,并确保当前操作的调用堆栈在继续处理任务队列之前耗尽

所以我们可以免费得到Facebook和Mozilla说他们的调度员给我们的东西。我们无法避免。我们为什么要把它当作什么特别的东西来谈论

嗯。。。另一个需要考虑的问题是,如果您的“操作”使用回调执行异步操作,例如:

  • 更新状态
  • 发射XHR
  • 使用结果更新状态
  • 在这里,你的行为可以分为两部分,在2到3部分之间可能会发生一些事情,从而违反了“一次一个行为”的原则

    这个问题只能通过术语来解决:

  • 将操作A定义为更新状态并发送XHR的对象
  • XHR的结果触发更新状态的操作B
  • 毕竟,Facebook曾表示“行动也可能来自其他地方,比如服务器。”

    因此,只要对术语稍作修改,我们就不需要调度器,它除了将事件分派到感兴趣的存储区之外,还可以执行其他任何操作


    那么我错过了什么?为什么一个处于变化中的调度员必须做的不仅仅是调度

    我的答案是:编写这些文档的人并不清楚他们在谈论什么

    即使是顶尖的React回答者和React撰稿人也表示:

    据我所知,依赖Ajax的异步操作,等等。 不应阻止将操作分派给所有订阅者

    用户操作将有一个单独的操作,如 TodoMVC示例中的TODO_UPDATE_文本,以及在 服务器返回,类似于TODO\u UPDATE\u TEXT\u COMPLETED(或 也许只是一些更普通的东西,比如TODO\u UPDATE\u完成了这项工作 包含最新属性的新副本)


    请参阅:

    它不涉及并发模型。而是调度器的工作方式。当一个动作被调度时,该动作必须在另一个动作被调度之前完成。基本上,你不能也不应该在处理程序中发出另一个动作。我喜欢你的反问句,因为我同意。不应该。您的代码应该显式地处理依赖事件链。一个简单的事件发射器就足够了,而不是一个队列+事件发射器,但这样他们就没有那么多宣传了。