✨ Read this trending post from Hacker News 📖
📂 **Category**:
💡 **What You’ll Learn**:
Now that ClojureScript targets
ECMAScript 2016 we can
carefully choose new areas of enhanced interop. Starting with this
release, hinting a function as ^:async will make the ClojureScript
compiler emit an
JavaScript
async function:
(refer-global :only '[Promise])
(defn ^:async foo [n]
(let [x (await (Promise/resolve 10))
y (let [y (await (Promise/resolve 20))]
(inc y))
;; not async
f (fn [] 20)]
(+ n x y (f))))
This also works for tests:
(deftest ^:async defn-test
(try
(let [v (await (foo 10))]
(is (= 61 v)))
(let [v (await (apply foo [10]))]
(is (= 61 v)))
(catch :default _ (is false))))
In the last Clojure survey support for async functions dominated the
list of desired ClojureScript enhancements for JavaScript
interop. This enhancement eliminates the need to take on additional
dependencies for the common cases of interacting with modern Browser
APIs and popular libraries.
For a complete list of fixes, changes, and enhancements to
ClojureScript see
here
⚡ **What’s your take?**
Share your thoughts in the comments below!
#️⃣ **#ClojureScript #1.12.145 #Release**
🕒 **Posted on**: 1778228848
🌟 **Want more?** Click here for more info! 🌟
