Observable

Dans RxJS, la structure utilisée pour représenter un flux de données asynchrones est Observable.

Un Observable peut-être vu comme une promesse qui est capable de retourner plusieurs valeurs.

// Angular 5
// import {Observable} from 'rxjs/Observable'

// Angular 6
import {Observable} from 'rxjs'

// Créer un observable

//      next() permet d emettre une valeur
//      complete() permet de fermer l'observable
const observable$ = Observable.create(observer => {
    setTimeout(()=>  observer.next(1), 1000)
    setTimeout(()=>  observer.next(2), 2000)
    setTimeout(()=>  observer.complete(), 3000)
})

// Créer un Observateur
observable$.subscribe(
    value => console.log(value),
    error => console.log(error),
    () => console.log('terminé'))

// Résultat

// 1
// 2
// terminé

Convertir en observable

  • Depuis des valeurs :
import {Observable, of} from 'rxjs'

const obs$ = of('foo', 'bar');
  • Dépuis un tableau
import {Observable, from} from 'rxjs';


const obs$ = from([1,2,3]);
  • Depuis un événement
import { Observable, fromEvent} from 'rxjs';

const obs$ = fromEvent(document.querySelector('button'), 'click');
  • Depuis une promesse
import { Observable, from } from 'rxjs'

const obs$ = from(fetch('/users'));

HTTP Client

Les requêtes HTTP envoyées via le client HTTP Angular retournent des résultats de type Observable.

// resultat$ est de type Observable
const resultat$ = this._http.get("https://jsonplaceholder.typicode.com/posts");

results matching ""

    No results matching ""