2016-01-04 77 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。 –