TL;DR reduceはcompleteするまで値が返らない scanはnextで次々に値が返っていく 値を逐次利用したい場合はscan使いましょう 他言語でのreduce # in Ruby # reduceはinjectのalias (0..10).inject { |sum, n| sum + n } // in JavaScript (ECMAScript 2015) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].reduce((sum, n) -> sum + n) Reduce operator apply a function to each item emitted by an Observable, sequentially, and emit the final value ReactiveX - Reduce operator emit th