clojure - RxClojure - rx/return 和 rx/observable* 之间有什么区别?

标签 clojure reactive-programming rx-java

我正在看书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/

相关文章:

java - 根据其他排放量订阅

android - 在 Kotlin 中使用 RXJava 映射?

datetime - clj-time 并以用户时区显示

Clojure 中向量和数组的性能

c# - ReactiveList 问题

ios - 为什么 View Controller 的 deinit 不使用 RXSwift 调用?

java - Clojure:为 java for 循环返回一个迭代器

java - Clojure doto 宏

javascript - RxJS:锁定水平或垂直鼠标拖动

java - RxJava 过滤后获取下一项