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()