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

欢迎!请查看关于页面,以获取有关这是如何工作的更多信息。

0
文档

Promises可以调用以向它们提供值(与调用{{deliver}}相同的结果),但这在文档字符串中并未提及。

(def p (promise))(p 42) ;; 与(deliver p 42)一样@p ;; 42

之前的文档字符串

返回一个promise对象,可以使用deref/@进行读取,并使用仅一次的deliver进行设置。对deref/@的调用...

建议:将文档字符串更改为

clojure.core/promise ([]). 返回一个promise对象,可以使用deref/@进行读取,通过deliver一次性进行设置,或通过调用promise。对deref/@的调用...

补丁:clj-2480-2.patch
由:Alex Miller预审

3 个答案

0

评论者:hlewisship

我认为我们在docstring文件过多简练的价值(或定义)上存在分歧。

0

评论者:pbwolf

调用promise并不总是返回promise。此外,deliver的文档字符串并未描述返回值。我希望promise和deliver这两个docstrings保持同步。

观点:据我看,clojure源代码中IFn可能只是一个reify hack,以允许deliver接触promise。如果直接调用promise是该官方API的计划,那么就不会有deliver。我们真的需要两种方法来交付吗?如果大家开始回避deliver,我将失去一个 grep clj 文件的好词!

0
参考:https://clojure.atlassian.net/browse/CLJ-2480 (由 hlewisship 报告)
...