Saltar al contenido

Angular 2: convertir observable en promesa

Nuestros mejores programadores han agotado sus depósitos de café, en su búsqueda diariamente por la solución, hasta que Lucía halló la solución en Gogs y hoy la compartimos aquí.

Solución:

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

No pipa. Está en el objeto Observable por defecto.

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 se puede convertir a promesa como esta:

let promise=observable.toPromise();

Realmente no necesitas hacer esto solo haz…

import 'rxjs/add/operator/first';


this.esQueryService.getDocuments$.first().subscribe(() => 
        event.enableButtonsCallback();
      ,
      (err: any) => console.error(err)
    );
    this.getDocuments(query, false);

first() garantiza que el bloque de suscripción solo se llame una vez (después de lo cual será como si nunca se hubiera suscrito), exactamente lo mismo que promete entonces()

Si para ti ha resultado provechoso nuestro artículo, te agradeceríamos que lo compartas con el resto programadores así nos ayudas a difundir nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *