-
Notifications
You must be signed in to change notification settings - Fork 11
Open
Description
The top level for the worker is currently like this:
(defn decode-message [event]
(condp = (aget (.-data event) "command")
"channel" (.postMessage js/self (run-function-name (.-data event)))
"channel-arraybuffer" (post-array-buffer (run-function-name (.-data event)))))
(defn bootstrap []
(set! (.-onmessage js/self) decode-message))If (run-function-name (.-data event)) returns a promise, this won't work. This can be hard to avoid when using code from javascript programmers, for example https://github.com/stephenliberty/excel-builder.js . I think it may be useful to be able to opt into behavior more like this:
(defn decode-message [event]
(condp = (aget (.-data event) "command")
"channel"(let [promise (run-function-name (.-data event))]
(.then promise (fn [data]
(.postMessage js/self data))))))
...Or maybe detect if it is a promise, then do something reasonable.
Metadata
Metadata
Assignees
Labels
No labels