Skip to content

Commit 6bfc4dd

Browse files
committed
Request / response and more readable
- Request / response for main thread - more readable worker thread script
1 parent e9c1514 commit 6bfc4dd

File tree

2 files changed

+28
-5
lines changed

2 files changed

+28
-5
lines changed

src/cljs_workers/core.cljs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,24 @@
2525
(dotimes [_ count]
2626
(>! workers (create-one script))))
2727
workers)))
28+
29+
(defn- do-request!
30+
[worker {:keys [handler arguments transfer] :as request}]
31+
(let [message
32+
(-> {:handler handler, :arguments arguments}
33+
clj->js)
34+
35+
transfer
36+
(->> transfer
37+
(select-keys arguments)
38+
vals)]
39+
40+
(if (seq transfer)
41+
(.postMessage worker message (clj->js transfer))
42+
(.postMessage worker message))))
43+
44+
(defn- handle-response!
45+
[event]
46+
(-> (.-data event)
47+
(js->clj :keywordize-keys true)))
48+

src/cljs_workers/worker.cljs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,19 @@
1717
(handler arguments)
1818

1919
message
20-
(merge result {:state :success})
20+
(-> result
21+
(merge {:state :success})
22+
clj->js)
2123

2224
transfer
23-
(->> (:transfer message)
25+
(->> (:transfer result)
2426
(map keyword)
25-
(select-keys message)
27+
(select-keys result)
2628
vals)]
2729

2830
(if (seq transfer)
29-
(.postMessage js/self (clj->js message) (clj->js transfer))
30-
(.postMessage js/self (clj->js message))))
31+
(.postMessage js/self message (clj->js transfer))
32+
(.postMessage js/self message)))
3133

3234
(catch js/Object e
3335
(->> {:state :error, :message (.toString e)}

0 commit comments

Comments
 (0)