3
A
回答
5
我說你不能籠統。因爲許諾創建爲reify
的幾個接口:IDeref
,IBlockingDeref
,IPending
,IFn
。但是你可以檢查價值是否實現其中的一個:clojure.lang.IPending
。
(defn promise? [v]
(instance? clojure.lang.IPending p))
,或者甚至全部:
(defn promise? [v]
(every? #(instance? % v)
[clojure.lang.IPending
clojure.lang.IFn
clojure.lang.IBlockingDeref
clojure.lang.IDeref]))
+0
與前者一樣,(promise?(filter even?[1 2 3]))=> true,所以我肯定會使用後者。 – Jeb
2
我會去與
(defn promise? [p]
(isa? (class p) clojure.lang.IPending))
相關問題
- 1. 如何檢查承諾是否返回空對象
- 2. 如何檢查角度的$ q承諾是否已經解決
- 3. NodeJS - Q - 如何在另一個承諾中承諾承諾
- 4. 檢查一個值是否爲空
- 5. C#如何檢查兩個值中的一個是否爲真?
- 6. 如何等待一個值返回,如果它不是承諾
- 7. AngularJS測試一個承諾被稱爲一個承諾
- 8. 如何檢查值是否爲1.#INF0000?
- 9. 如何檢查值是否爲數字?
- 10. 如何檢查DataReader值是否爲空?
- 11. 如何檢查一個值是否是Prolog中的數值?
- 12. 如何檢查一個值是否在一系列值中?
- 13. 如何檢查一個查詢是否存在多個值
- 14. 如何「承諾」,一個值將是某種類型
- 15. 如何檢查諾言價值和財產更新的承諾,但沒有返回與柴承諾
- 16. 如何解決對另一個承諾的承諾?
- 17. 如何解決另一個承諾內的承諾?
- 18. 如何從另一個承諾制定jQuery承諾
- 19. 在另一個承諾中承諾的回報值
- 20. 檢查值是否爲
- 21. 如何檢查一個值是否大於其他值
- 22. 檢查一個對象是否從一個類型繼承
- 23. 檢查兩個值是否爲負數
- 24. 如何測試一個函數是否返回一個angularJS承諾對象
- 25. 如何檢查一個Javascript類是否繼承另一個(不創建obj)?
- 26. 如何檢查是否一個鍵/值是用Python
- 27. 我該如何檢查一個Hashtable值是否都是0?
- 28. 如何檢查值是否是最後一個csv條目?
- 29. 檢查是否存在,是否存在,是否爲某個值
- 30. 檢查一個值是否在輸入
不能UTIL你創建了有一些信息告訴它是否承諾或不 – Ankur
@Ankur會'承諾另一個抽象(DEFN答應麼? [x](pos?(.indexOf(str(type x))「clojure.core $ promise」)))'是可笑的? –
@ A.Webb這不會是一件大事:除了需要一個小小的修補程序才能工作,我希望你的代碼能夠通過這樣的方式來表達這樣的話:「這是你在這裏的一個非常好的功能,它會是一個恥辱如果有事情發生,就發生。「然後下一個版本的Clojure會改變你所依賴的實現細節。 – amalloy