I'm using RxJS here and I can't seem to get over this seemingly simple issue.
rx.Observable
.from([1,2,3,54,3,22,323,23,11,2])
.distinct()
.subscribe(function next (x) {
console.log('Next');
console.log(x);
}, function error (x) {
console.log('Error');
console.log(x);
}, function completed () {
console.log('Completed');
});
The above code spits out each array item in order as expected.
rx.Observable
.fromPromise(getNumbers([1,2,3,54,3,22,323,23,11,2]))
.distinct()
.subscribe(function next (x) {
console.log('Next');
console.log(x);
}, function error (x) {
console.log('Error');
console.log(x);
}, function completed () {
console.log('Completed');
});
function getNumbers (nums) {
return new Promise(function (resolve, reject) {
resolve(nums);
});
}
Here though I only get the full array (i.e. [ 1, 2, 3, 54, 3, 22, 323, 23, 11, 2 ]
). Shouldn't RxJS be breaking the result apart? I'd hope it at least had some logic for this.
Thank you
No it will not break them apart implicitly. If you want to split them use flatMap
which will flatten the array:
rx.Observable
.fromPromise(getNumbers([1,2,3,54,3,22,323,23,11,2]))
.flatMap(function(x) { return x; })
.distinct()
.subscribe(function next (x) {
console.log('Next');
console.log(x);
}, function error (x) {
console.log('Error');
console.log(x);
}, function completed () {
console.log('Completed');
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With