angular - Convert Promise to RxJs Observable -


can convert promise rxjs observable? want token local storage , if error,it should catched observer subscribed observable. below existing solution promise:

  gettoken(): promise<any> {     return new promise<any>((resolve, reject) => {       resolve(json.parse(localstorage.getitem('currentuser')).token);       reject();     });   } 

and subscriber :

 this.authservice.gettoken().then(token => {       this.token = token;     }).catch(() => console.log('error! cannot token')); 

i tried convert observable below method :

 gettoken2(): rx.observable<number> {     return rx.observable.create(obs => {       obs.next(json.parse(localstorage.getitem('currentuser')).token);        obs.error('error! cannot token');     });   } 

and

  this.authservice.gettoken2()   .subscribe((token) => console.log(token), (er) => console.log(er)); 

but problem when error occurs while getting token localstorage ,the rxjs observable not catch via obs.next().it resolved successfully.whereas promise catches via reject method.can give idea wrong? thanks

you don't need this, use observable.frompromise():

observable.frompromise(this.authservice.gettoken())   ...   .subscribe(...) 

if want use promise anywhere in observable chain don't need convert observable happens automatically.

https://medium.com/@benlesh/rxjs-observable-interop-with-promises-and-async-await-bebb05306875


Comments

Popular posts from this blog

Sort a complex associative array in PHP -

vb.net - How to ignore if a cell is empty nothing -

recursion - Can every recursive algorithm be improved with dynamic programming? -