coffee> rext = require 'rx'
coffee> arr = [1..5]
[ 1, 2, 3, 4, 5 ]
coffee> obs = rext.Observable.fromArray(arr)
{ _subscribe: [Function] }
coffee> obs.subscribe( (x) -> console.log("added value: " + x))
added value: 1
added value: 2
added value: 3
added value: 4
added value: 5
{ isStopped: true,
observer:
{ isStopped: true,
_onNext: [Function],
_onError: [Function: defaultError],
_onCompleted: [Function: noop] },
m: { isDisposed: true, current: null } }
coffee> arr.push(12) # expecting "added value: 12"
6 # instead got new length of array
coffee>
subscribe
関数が作成されたときに、関数が1回だけ起動するように見えます。配列の変更を観察するのではなく、配列をそれぞれ処理するためだけに使用しているので、少し誤称のようです。ただし、そのコードはwikiにあるものとほとんど同じです。ですから、私が間違っているか、subscribe
期待どおりに機能しないかのどちらかです。