ClojureScript Gets Async/Await

Hacker News Top Tools

Summary

ClojureScript 1.12.145 introduces native async function support via the ^:async hint, enabling direct JavaScript async/await interop without additional dependencies.

No content available
Original Article
View Cached Full Text

Cached at: 05/08/26, 10:41 AM

# ClojureScript - 1.12.145 Release Source: [https://clojurescript.org/news/2026-05-07-release](https://clojurescript.org/news/2026-05-07-release) *07 May 2026* *ClojureScript Team* We’re happy to announce a new release of ClojureScript\. If you’re an existing user of ClojureScript please read over the following release notes carefully\. ## [https://clojurescript.org/news/2026-05-07-release#_async_functions](https://clojurescript.org/news/2026-05-07-release#_async_functions)Async Functions Now that ClojureScript targets[ECMAScript 2016](https://clojurescript.org/news/2025-11-24)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](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/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](https://github.com/clojure/clojurescript/blob/master/changes.md#1.12.145) ## [https://clojurescript.org/news/2026-05-07-release#_contributors](https://clojurescript.org/news/2026-05-07-release#_contributors)Contributors Thanks to all of the community members who contributed to ClojureScript 1\.12\.145 - Michiel Borkent

Similar Articles

Clojure is almost as fast as C (with some help)

Lobsters Hottest

This article details how Clojure, with the JVM's Vector API and careful optimization, achieved frame rates within 20% of C for a 3D stress test, demonstrating that a dynamic language can approach low-level performance on hot loops.

Mixing Visual and Textual Code

Hacker News Top

This paper presents Hybrid ClojureScript, a programming language that allows developers to mix visual and textual syntax for domain-specific expressions, preserving composability and static reasoning.

What Async Promised and What It Delivered

Hacker News Top

A deep dive into the evolution of async programming models—from callbacks to promises—highlighting how each wave solved prior resource and performance issues while introducing new ergonomic challenges.