Angular 2: Convert Observable to Promise Angular 2: Convert Observable to Promise angular angular

Angular 2: Convert Observable to Promise


rxjs7

lastValueFrom(of('foo'));

https://indepth.dev/posts/1287/rxjs-heads-up-topromise-is-being-deprecated

rxjs6

https://github.com/ReactiveX/rxjs/issues/2868#issuecomment-360633707

Don't pipe. It's on the Observable object by default.

Observable.of('foo').toPromise(); // this

rxjs5

import 'rxjs/add/operator/toPromise';import 'rxjs/add/operator/map';...this._APIService.getAssetTypes().map(assettypes => {  this._LocalStorageService.setAssetTypes(assettypes);}).toPromise().catch(err => {  this._LogService.error(JSON.stringify(err));});


observable can be converted to promise like this:

let promise=observable.toPromise();


you dont really need to do this just do ...

import 'rxjs/add/operator/first';this.esQueryService.getDocuments$.first().subscribe(() => {        event.enableButtonsCallback();      },      (err: any) => console.error(err)    );    this.getDocuments(query, false);

first() ensures the subscribe block is only called once (after which it will be as if you never subscribed), exactly the same as a promises then()