假設我需要構件數據和構件部件數據。我需要通過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])
(據我所知)。