Observable et Promise en Angular

Dans cet article, nous discuterons d'Observable et de Promise dans Angular à l'aide d'une mise en œuvre pratique étape par étape.

Ordre du jour

  • Synchrone Vs Asynchrone
  • Observable Vs Promesse
  • Dans le processus synchrone, plusieurs tâches sont exécutées les unes après les autres, ce qui signifie que la deuxième tâche attend l'achèvement de la première tâche. Dans ce cas, le thread doit attendre avant de passer à une autre tâche.
  • Un autre côté, dans le processus asynchrone, plusieurs processus sont exécutés simultanément, il n'attendra pas la fin de la tâche précédente. Il passera simplement à la tâche suivante et commencera l'exécution.

Émettre des valeurs

var observable = new Observable(res => {
      res.next("Hello Piyush");
      res.next("Hello Vivek");
      res.next("Hello Rajesh");
    });
    observable.subscribe(console.log)

    //Output --> Observable can emmit multiple values
    //Hello Piyush
    //Hello Vivek
    //Hello Rajesh

    var promise = new Promise(res => {
      res("Hello Piyush");
      res("Hello Vivek");
      res("Hello Rajesh");
    });
    promise.then(console.log)

    //output
    //Hello Piyush --> Promise will emit only single values that's why other two values are not emmited.

var observable = new Observable(res => {
      res.next("Hello....");
    });
observable.subscribe(console.log) //Whenever subscribe observable then only it will emmit values beacuse it is lazy load.

//Output
//Hello....

var promise = new Promise(res => {
      console.log("Promise start executing..."); //In console can see this output before calling promise it will initialized on creation and eagerly load.
      res("Hello....");
    });
//Call promise
promise.then(console.log)

//Output
//Promise start executing...
//Hello....

//Async Promise
var promise = new Promise(res => {
      console.log("Start Executing...");

      res("Hello...");

      console.log("Execution End...");
    });
promise.then(console.log)

//Output
//Start Executing...
//Execution End...
//Hello...


//Async Observable
var observable = new Observable(res => {
      console.log("Start Executing...");
      setTimeout(() => {
        res.next("Hello Piyush");
        res.next("Hello Vivek");
        res.next("Hello Rajesh");
      })
        , 1000
      console.log("Execution End...");
    });
observable.subscribe(console.log)

//Output
//Start Executing...
//Execution End...
//Hello Piyush
//Hello Vivek
//Hello Rajesh

//Sync Observable
var observable = new Observable(res => {
      console.log("Start Executing...");
      res.next("Hello Piyush");
      res.next("Hello Vivek");
      res.next("Hello Rajesh");
      console.log("Execution End...");
    });
observable.subscribe(console.log)

//Output
//Start Executing...
//Hello Piyush
//Hello Vivek
//Hello Rajesh
//Execution End...

Dans certains cas, nous devons désabonner l'observable si nécessaire, car il s'exécute en arrière-plan et crée parfois un problème de fuite de mémoire. C'est pourquoi nous devons gérer ce scénario.

//observable
    const observable = new Observable((res) => {

      let count = 0;
        setInterval(() => {
          count = count + 1;
          res.next(count);
        }
          , 1000)
    })

//subscribe the observable
    this.subscription = observable.subscribe(ele => { console.log(ele) })

//unsubscribe the observable
    setTimeout(() => {
      this.subscription?.unsubscribe();
    }
    ,12000)

Consultez le lien ci-dessous lié à la documentation officielle pour en savoir plus sur RxJS

https://rxjs.dev/guide/overview

Lien GitHub

https://github.com/Jaydeep-007/ObservableAndPromiseDemo/tree/master

Conclusion

Dans cet article, nous avons discuté de la différence entre Promise et Observable avec quelques exemples pratiques.

Bon apprentissage!

Suggested posts

Recherche d'informations sur les noms de domaine

Un extrait de Small, Sharp Software Tools par Brian P. Hogan

Recherche d'informations sur les noms de domaine

Lorsque vous faites une demande à facebook.com, votre ordinateur recherche le nom de domaine pour traduire ce nom de domaine en une adresse IP afin que votre ordinateur puisse établir cette connexion.

La révolution sans code : libérer la prospérité des entreprises avec Webflow, Framer, Bubble.io,

La révolution sans code : libérer la prospérité des entreprises avec Webflow, Framer, Bubble.io,

Embarquez pour un voyage passionnant d'innovation et de succès en exploitant le potentiel inexploité de ces surprenantes plateformes sans code. Permettez-moi de partager avec vous l'histoire de Sapna, une remarquable femme entrepreneure.

Related posts

les pronoms font super peur

Ça me frappe tout à coup, comme c'est si souvent le cas C'est à nouveau le milieu du chemin <Non, pas celui du Pacifique, toi marron, celui du carnaval> Chaque gros titre fort… ..

Créer un environnement de travail sûr

Créer un environnement de travail sûr

« Il me protégera quand je serai en danger. Il me cachera dans sa tente.

VIE SANS LIMITE

Quand tu grandis, on a tendance à te dire que le monde est comme il est et que ta vie est juste de vivre ta vie à l'intérieur du monde, sans jamais risquer ta vie, juste suivre un chemin tracé et mourir à la fin, et essayer de ne pas cogner trop les murs. Mais c'est une vie très limitée.

L'érosion lente : dévoiler les façons dont les gens perdent leur carrière

L'érosion lente&nbsp;: dévoiler les façons dont les gens perdent leur carrière

Dans le monde rapide et compétitif d'aujourd'hui, la carrière d'une personne joue un rôle important dans la croissance personnelle, la stabilité financière et la satisfaction globale de la vie. Cependant, de nombreuses personnes se retrouvent prises dans un cycle incessant de stagnation et d'insatisfaction, dépérissant progressivement dans leur vie professionnelle.