上下文:为了使用 JSON 树生成 swift 代码,我以预排序格式遍历树,向下到达所有叶节点,有效地将树扁平化为数组。
描述:使用 Rx.Observable.generate() 从数组元素创建一个可观察的流,但是在过滤时我得到了一些奇怪的结果。我在下面提供了一个简化的示例:
例子:
var Rx = require('/usr/local/lib/node_modules/rx') // 4.0.7
// source 1,3,5,7,9 (WAT)
var source = Rx.Observable.generate(
0,
function (x) { return x < 10; },
function (x) { return x + 1; },
function (x) { return x; }
)
// filter & merge
var a = source.filter(x => x % 2 == 0)
var b = source.filter(x => x % 2 != 0)
var source = a.merge(b)
// subscribe & output
var subscription = source.subscribe(
x => console.log(x)
)
问题:为什么我得到的输出结果是 1,3,5,7,9 而不是 0,1,2,3,4,5,6,7,8,9?
我应用合并的方式似乎并不重要......当反转时我也会得到输出 0,2,4,6,8。
编辑,npm install & node version user3743222:感谢您的反馈,项目信息如下:
$ npm install
chai@3.4.1 node_modules/chai
├── assertion-error@1.0.1
├── type-detect@1.0.0
└── deep-eql@0.1.3 (type-detect@0.1.1)
moment@2.11.1 node_modules/moment
mocha@2.3.4 node_modules/mocha
├── escape-string-regexp@1.0.2
├── diff@1.4.0
├── commander@2.3.0
├── supports-color@1.2.0
├── growl@1.8.1
├── debug@2.2.0 (ms@0.7.1)
├── jade@0.26.3 (commander@0.6.1, mkdirp@0.3.0)
├── mkdirp@0.5.0 (minimist@0.0.8)
└── glob@3.2.3 (inherits@2.0.1, graceful-fs@2.0.3, minimatch@0.2.14)
rx@4.0.7 node_modules/rx
$ node --version
v4.2.1