Sobes.tech
Middle

Τι είναι το observable;

sobes.tech AI

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

Observable — είναι ένα ρεύμα δεδομένων που μπορεί να εκπέμπει τιμές ασύγχρονα. Σε αντίθεση με τις υποσχέσεις, που επιστρέφουν μια μόνο τιμή, το observable μπορεί να εκπέμψει μηδέν, μία ή πολλές τιμές με την πάροδο του χρόνου.

Βασικά χαρακτηριστικά:

  • Νωθρά: Το ρεύμα ξεκινά μόνο όταν εγγραφεί κάποιος.
  • Ακυρώσιμα: Μπορείτε να διαγραφείτε από το ρεύμα για να σταματήσει η εκτέλεσή του και να ελευθερώσετε πόρους.
  • Πολλές τιμές: Μπορεί να εκπέμψει πολλές τιμές, ενώ οι υποσχέσεις λύνονται μόνο μία φορά.

Βασικά συστατικά:

  • Observable: Το ίδιο το ρεύμα δεδομένων.
  • Observer: Αντικείμενο με τις μεθόδους next, error και complete, που καλούνται από το observable.
  • Subscription: Το αποτέλεσμα της εγγραφής σε ένα observable, επιτρέπει την ακύρωση.
  • Operators: Συναρτήσεις που μετασχηματίζουν ή συνδυάζουν observable (π.χ., map, filter, merge).

Παράδειγμα χρήσης (RxJS):

import { of } from 'rxjs';
import { map } from 'rxjs/operators';

const source = of(1, 2, 3); // Δημιουργούμε ένα observable που εκπέμπει 1, 2, 3

const example = source.pipe(map(x => x + 1)); // Εφαρμόζουμε τον τελεστή map

const subscription = example.subscribe({ // Εγγραφόμαστε στο observable
  next: value => console.log(`Next: ${value}`), // Επεξεργασία κάθε τιμής
  error: err => console.error(`Error: ${err}`), // Επεξεργασία σφαλμάτων
  complete: () => console.log('Complete!') // Καλείται στο τέλος του ρεύματος
});

// έξοδος:
// Next: 2
// Next: 3
// Next: 4
// Complete!

// subscription.unsubscribe(); // Μπορεί να ακυρωθεί η εγγραφή