我正在阅读这本书Clojure Reactive Programming(这是很棒的BTW),但是我无法理解这两个代码示例之间的区别,这些示例创建了一个简单的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
提前感谢任何能够解释这个问题的人。
答案 0 :(得分:2)
两种情况都返回一个Observable,对于这个特定的例子,它们都做同样的事情:发出一个值。
simple-obs-two
是一个示例,如果rx库中没有内置的rx / return,你将如何构建rx / return。