以便将以下请求放入队列并且在发送前任的响应之前不会处理?
我正在尝试写入数据库然后很快,允许用户查询和更新他/她最近插入的文档
答案 0 :(得分:0)
您应该查看core.async和cljs-http。
您需要使用(chan)
创建一个确认通道,使用回调编写数据库写入函数,将>!
信号放入确认通道。
(defn database-write [data db-params callback]
;Do stuff
(callback status-of-the-computation))
(def confirmation-chan (chan))
;First operation
(go
(database-write ;data ;db-params
(fn [x] (>! confirmation-chan x))))
;Second operation
(go
(when (<! confirmation-chan)
(http/post "http://example.com" {:form-params {:key1 [1 2 3] :key2 "value2"}})))
第二次操作不会开始,直到第一次操作完成。