假设有一个评估此表达式的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是个好主意吗?