我想使用RXJS Observable.基本上它工作正常,但我不仅需要在observer.next()时做出反应,而且还需要在调用observer.complete()时做出反应.
如何获得RXJS Observable的OnComplete事件?在我看来,RXJS文档令人困惑.
如何获得RXJS Observable的OnComplete事件?在我看来,RXJS文档令人困惑.
export class Service { myMethod():Observable<any> { return Observable.create((observer:any) => { for(let i=0; i<10; i++) { observer.next(i); } if(true==true) { // this event I need observer.complete(); } else { observer.error(xhr.response); } } } export class Component() { // constructor etc. doSome() { this.service.myMethod() // Here I would like to get OnComplete event .catch(this.handleError) .subscribe((num:any) => { console.log(num); }); } }
subscribe方法接受三个回调.最后一个是完整的事件.
doSome() { this.service.myMethod() .subscribe((num:any) => { console.log(num); },(err) => { this.handleError(err); },() => { // <---- this.handleComplete(); }); }
你也可以利用finally运算符.
doSome() { this.service.myMethod() .catch(this.handleError) .finally(this.handleComplete) // <---- .subscribe((num:any) => { console.log(num); }); }