【问题标题】:In ClojureScript, let a go-loop run until it's channel is exausted在 ClojureScript 中,让 go-loop 运行直到它的通道耗尽
【发布时间】:2015-09-19 20:04:51
【问题描述】:

我正在使用的库,re-frame,使用a go-loop to process events。在我正在编写的 ClojureScript 函数中,我需要停下来等到 that channel 用尽,即所有事件都已处理完毕(包括在处理事件期间生成的事件)。

我该怎么做?

一点上下文。我正在编写一个用于单页应用程序的服务器端渲染的库,并且我大部分时间都可以在 NodeJS 中运行该应用程序,问题是我或多或少地这样做了:

(defn render-application []
  (re-frame/dispatch [:get-data-needed-to-render])
  (reagent/render-to-string [views/main-view]))

事件处理程序:get-data-needed-to-render 将触发一个或多个AJAX 请求到服务器以获取渲染应用程序所需的数据,即reagent/render-to-string 所需的数据。

【问题讨论】:

    标签: clojurescript reagent re-frame


    【解决方案1】:

    :get-data-needed-to-render 完成下载后,您可以发送:data-needed-to-render-ready。然后为它编写一个处理程序,它将运行(reagent/render-to-string [views/main-view]))。在你的 main 函数中,入口点,只需调度 :get-data-needed-to-render

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-09
      • 2019-09-13
      • 1970-01-01
      • 2021-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-16
      相关资源
      最近更新 更多