通常,在開發 ClojureScript 時,如果需要檢查 Promise 裡的值,我會寫成如下的程式碼:
;; Using lambdaisland fetch, kitchen-async
(p/let [resp (fetch/get "temp-url")]
(def resp resp))
;; Then, I evaluate resp to know the value.
為什麼會這樣子寫呢?因為 prn 會把值輸出到 browser 的 console log 去,而 browser 的 console log 已經有太多東西了。
其實還有另一個方案,使用 tap>。於是,程式寫成這樣子:
(p/let [resp (fetch/get "temp-url")] (tap> {:response resp}))
使用 tap> 的好處是,我只要把 browser 指向 port 9630 ,就可以很容易地看到 tap> 輸出的值了。