给定一个评估此表达式的pREPL客户端
(do
(-> (bound-fn []
(dotimes [_ 4]
(Thread/sleep 100)
(println 1)))
Thread.
(doto .start))
1)
正确的输出将是
{:tag :ret, :val 1, :ns user, :ms 4, :form (do
(-> (bound-fn []
(dotimes [_ 4]
(Thread/sleep 100)
(println 1)))
Thread.
(doto .start))
1)}
{:tag :out, :val 1
}
{:tag :out, :val 1
}
{:tag :out, :val 1
}
{:tag :out, :val 1
}
问题是,从线程获得的输出可能随时打印出来,可能是一分钟之后。
在这段时间里,可能已经处理了许多其他的pREPL请求。
因此,在没有ID的情况下,像{:tag :out, :val 1}
这样的消息缺乏足够的信息来追踪其来源。
添加ID会是一个好主意吗?