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

欢迎!请查看关于页面以了解此操作的更多信息。

0
core.async

如果“finally”块中有“if”,且封装的“try”在CLJS的“go”块中,那么“try”的结果总是nil。

示例代码

(ns demo)
(:require-macros
(link: cljs.core.async.macros :refer [go]))

;; 打印: "in a try"
(println (try "in a try" (finally (if true nil ))))

;; 打印: "in a try"
(go (println (try "in a try" (finally nil))))

;; 打印: nil
(go (println (try "in a try" (finally (if true nil )))))

3 答案

0

由hubert发表的评论

也失败了
org.clojure/clojure "1.8.0"
org.clojure/clojurescript "1.9.671"
org.clojure/core.async "0.3.443"

0

由hiredman发表的评论

这可能是由于go块中try/catch处理中的破裂造成的,应该通过https://dev.clojure.org/jira/browse/ASYNC-184修复

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