2024 年 Clojure 状态调查! 中分享您的想法。

欢迎!请参阅 关于 页面了解有关此功能的更多信息。

0 投票
core.async

在绑定块内部停车会移除动态绑定的当前值。

示例

`
(require '[clojure.core.async :as async :refer [go <!]])</p>

(def ^:dynamic d)

(go
(binding [d :bound]

(println d)
(<! (async/timeout 10))
(println d)))

`

这里是有输出

`

:bound

object[clojure.lang.Var$Unbound 0x15f8a952 Unbound: #'user/d]

`

3 答案

0 投票

评论者:monorok

我发现了一种更容易复现问题的方法

`
(require '[clojure.core.async :as async :refer [go <!]])</p>

(def ^:dynamic d)

(go
(binding [d :bound]

(println d)
(<! (async/timeout 10))
(println d)))

`

输出

`
:bound

object[clojure.lang.Var$Unbound 0x15f8a952 Unbound: #'user/d]

`

不幸的是,我不知道如何编辑问题的描述。

0 投票

评论者:bronsa

我已经为您编辑了描述

0 投票
参考:https://clojure.atlassian.net/browse/ASYNC-203 (由 alex+import 报告)
...