I have the following RxJS code:
let items = Observable.of({
val: "one",
type: "string"
}, {
val: "five",
type: "string"
}, {
val: 2,
type: "integer"
}, {
val: 10,
type: "integer"
}, {
val: 20,
type: "integer"
});
items
.groupBy(x => x.type)
.subscribe(obs => {
let head = obs.first();
let tail = obs.skip(1);
head
.do(x => console.log('head == ', x))
.concat(tail)
.do(x => console.log('tail == ', x))
.subscribe(x => console.log('sub == ', x));
});
Here's the output:
head == Object {val: "one", type: "string"}
tail == Object {val: "one", type: "string"}
sub == Object {val: "one", type: "string"}
head == Object {val: 2, type: "integer"}
tail == Object {val: 2, type: "integer"}
sub == Object {val: 2, type: "integer"}
tail == Object {val: 20, type: "integer"}
sub == Object {val: 20, type: "integer"}
Why is the second item not getting emitted?
Here's a Plunk that demonstrates my problem.