[Rx.js]when does Zip operator emit error?

Viewed 2478

I am learning Rx.js and have one problem with zip operator:

    var error =Rx.Observable.throw('Oop!');
    var age$ = Rx.Observable.concat(Rx.Observable.of(21,22,23),error);
    var sex$ = Rx.Observable.of("male","male","female","female");
    var name$ = Rx.Observable.of("jack","john","james","lucy");
    var example = Rx.Observable.zip(age$,sex$,name$,(age,sex,name)=>{ return {age,sex,name} });

and i subscribe the example source and print some message:

    example.subscribe({
        next: (value) => { console.log(value); },
        error: (err) => { console.log('Error: ' + err); },
        complete: () => { console.log('complete'); }
    });

the out put is not what i expected:

{age:21,sex:"male",name:"jack"}
{age:22,sex:"male",name:"john"}
{age:23,sex:"female",name:"james"}
error

but just one line with no value output:

    error

read the offical doc but no chapter explained when the zip operator emit error.

Can anyone help?thx very much.

1 Answers
Related