Sobes.tech
Middle

Ποια είναι οι ομοιότητες και διαφορές μεταξύ Observable και Promise;

sobes.tech AI

Απάντηση από AI

Ομοιότητες:

  • Αντιπροσωπεύουν ασύγχρονες λειτουργίες.
  • Χρησιμοποιούν συναρτήσεις για την επεξεργασία του αποτελέσματος (επιλυμένο) και του σφάλματος (απορριφθέν).

Διαφορές:

Χαρακτηριστικό Promise Observable
Τιμή/γεγονός Επιστρέφει μια τιμή ή ένα σφάλμα. Επιστρέφει 0 ή περισσότερες τιμές με την πάροδο του χρόνου.
Ακύρωση Δεν μπορεί να ακυρωθεί μετά την εκκίνηση. Μπορεί να ακυρωθεί η εγγραφή.
Πολλοί συνδρομητές Μόνο εκτέλεση ανεξάρτητα από τους συνδρομητές. Μια νέα εγγραφή οδηγεί συνήθως σε νέα εκτέλεση (κρύο Observable).
Ναρκισσισμός Ξεκινά αμέσως μετά τη δημιουργία. Ξεκινά μόνο μετά την εγγραφή.
Τελεστές Δεν διαθέτει ενσωματωμένους τελεστές για μετασχηματισμό. Έχει πλούσιο σύνολο τελεστών (map, filter, merge, κ.λπ.).
Παραδείγματα χρήσης Αιτήματα HTTP, αναβολές ενεργειών. Γεγονότα UI, συνδέσεις WebSocket, διαστήματα.

Παράδειγμα Observable:

import { Observable } from 'rxjs';

const observable = new Observable(subscriber => {
  subscriber.next(1);
  subscriber.next(2);
  setTimeout(() => {
    subscriber.next(3);
    subscriber.complete();
  }, 1000);
});

Παράδειγμα Promise:

const promise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('Δεδομένα λήφθηκαν');
  }, 1000);
});