异步函数由于 ClojureScript 以 [ECMAScript 2016](https://clojurescript.org/news/2025-11-24) 为目标可谨慎选择新的增强互操作性的领域。从这个版本开始将函数标记为 ^:async 会使 ClojureScript 编译器生成一个 [JavaScript 异步函数](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)) ;; 非异步 f (fn [] 20)] ( n x y (f))))这在测试中同样适用示例代码如下(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))))在上一次 Clojure 调查中对异步函数的支持在期望的 ClojureScript 与 JavaScript 互操作性增强列表中名列前茅。这一增强消除了在与现代浏览器 API 和流行库交互的常见场景中引入额外依赖的需求。有关 ClojureScript 的完整修复、更改和增强列表请参阅[此处](https://github.com/clojure/clojurescript/blob/master/changes.md#1.12.145)。贡献者感谢所有为 ClojureScript 1.12.145 做出贡献的社区成员- Michiel Borkent文档[概述](/about/rationale) [参考资料](/reference/documentation) [工具](/tools/tools) [指南](/guides/guides)社区[资源](/community/resources) [贡献](/community/contributing) [公司](/community/companies) [活动](http://clojure.org/community/events)代码[API 速查表](http://cljs.info/cheatsheet) [源代码](https://github.com/clojure/clojurescript/) [更新日志](https://github.com/clojure/clojurescript/blob/master/changes.md)其他[ClojureTV](https://www.youtube.com/user/ClojureTV)法律[许可证](/community/license) [隐私政策](/privacy)