2016-01-04 28 views
1

我读的书Clojure Reactive Programming(这是伟大BTW),但我不能让我的头围绕创建一个简单的观测量的2个样品之间的差异:RxClojure - rx/return与rx/observable *有什么区别?

(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 

预先感谢任何能够阐明这个问题的人。

回答

2

这两种情况都返回一个Observable,对于这个特定的例子都做同样的事情:发出一个值。

simple-obs-two是一个示例,如果在rx库中没有内置的rx/return,您将如何构建rx/return。

+0

太棒了!谢谢@dAni。 –