clojurescript 中的线程/睡眠

问题描述 投票:0回答:1

大家好。

这是 events.cljs 文件中的一段代码。页面上有一个我想要的按钮,当我单击该按钮时,页面上会出现一段文字,并在 3 秒后消失。在这里,我想在单击按钮后将文本 assoc 到数据库,并在 3 秒后将其解除关联,但在

Thread
行中出现错误,未找到
Thread/sleep
命名空间。 谁能帮我解决这个问题吗?

谢谢你

(rf/reg-event-db
  ::niloofar
  (fn [db [_]]
    (do
      (assoc db :greeting "hi")
      (Thread/sleep 3000)
      (dissoc db :greeting))))
clojure clojurescript
1个回答
2
投票

您应该创建一个新的效果来分离该值并将其与

:dispatch-later
一起使用,例如:

(rf/reg-event-fx ::show
  (fn [{db :db} _]
    {:db             (assoc db :greeting "hi")
     :dispatch-later {:ms 3000 :dispatch [::-hide]}))

(rf/reg-event-db ::-hide
  (fn [db _]
    (dissoc db :greeting)))
© www.soinside.com 2019 - 2024. All rights reserved.