假设我需要构件数据和构件部件数据。我需要通过http请求获取小部件数据以获取其零部件编号。我使用这些部分数字来制作更多的http请求来获取零件数据。取决于来自另一个http事件的数据的重新构建http事件-fx
使用https://github.com/Day8/re-frame-http-fx,它会看起来像:
(reg-event-fx
:foo/get-widget
(fn [{:keys [db]} [_]]
{:http-xhrio {:method :get
:uri "foobar.com/widget"
:format (ajax/transit-request-format)
:response-format (ajax/json-response-format)
:on-success [:foo/load-widget]
:on-failure [:foo/set-error]}}))
(reg-event-fx
:foo/get-widget-part
(fn [{:keys [db]} [_ part-number]]
{:http-xhrio {:method :get
:uri (str "foobar.com/part/" part-number)
:format (ajax/transit-request-format)
:response-format (ajax/json-response-format)
:on-success [:foo/load-part]
:on-failure [:foo/set-error]}}))
我将如何初始化我的部分数据为我的网页?我能想到的最直接的方法是通过编写另一个处理程序get-widget-then-widget-parts
来对get-widget
和get-widget-part
进行包装,方法是对小部件执行http请求并成功获取该数据并检索零件数据。我的问题是它不是很合成。我需要创建另一个处理程序。同时,我不能只(dispatch [:foo/get-widget])
并将结果输入到(dispatch [:foo/get-widget-part])
(据我所知)。