我正在看书Clojure Reactive Programming (顺便说一句,这很棒),但我无法理解这两个创建简单 Observables 的代码示例之间的区别:
(ns rx-playground.core
(:require [rx.lang.clojure.core :as rx])
(:import [rx Observable]))
;; Sample 1
(defn simple-obs-one [n] (rx/return n))
;; Sample 2
(defn simple-obs-two [n]
(rx/observable*
(fn [observer]
(rx/on-next observer n)
(rx/on-completed observer))))
我唯一注意到的是第一个示例返回一个类型的对象:
rx.internal.util.ScalarSynchronousObservable
当第二段代码返回一个类型的对象时:
rx.Observable
预先感谢任何能够阐明该问题的人。
最佳答案
两种情况都返回一个 Observable,并且对于这个特定的示例,两者都执行相同的操作:发出一个值。
simple-obs-two
是在 rx 库中没有内置 rx/return 的情况下如何构建 rx/return 的示例。
关于clojure - RxClojure - rx/return 和 rx/observable* 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34592398/