Observables og abonnementer
Opprett og abonner på observable-strømmer.
Observables og abonnementer er en gratis leksjon i Angular Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Angular Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Angular Academy inneholder totalt 4 leksjoner.
Hva er en Observable
En Observable er en lat strøm av verdier over tid. Ingenting skjer før De abonnerer. Den kan sende ut null eller flere verdier og deretter enten fullføres eller gi en feil.
RxJS er det reaktive biblioteket Angular leveres med, for håndtering av asynkront arbeid som HTTP, hendelser og tidtakere.
Opprette en Observable
Konstruktøren til Observable tar en abonnentfunksjon. Kall next() for å sende ut en verdi, complete() for å fullføre og error() for å mislykkes.
import { Observable } from 'rxjs';
const numbers$ = new Observable<number>(subscriber => {
subscriber.next(1);
subscriber.next(2);
subscriber.next(3);
subscriber.complete();
});Abonnere
Abonnement starter kjøringen. Send inn en observer med håndterere for next, error og complete.
numbers$.subscribe({
next: v => console.log('value', v),
error: err => console.error(err),
complete: () => console.log('done')
});
// value 1, value 2, value 3, doneObservables er late
Abonnentfunksjonen kjører ikke før subscribe() kalles. Hvert abonnement utløser en ny, uavhengig kjøring (kald observable).
const tick$ = new Observable(s => {
console.log('executing');
s.next(Date.now());
});
// "executing" is NOT logged until subscribe() runsOpprettingshjelpere: of og from
De bruker sjelden konstruktøren. Hjelpere som of og from oppretter observables raskt.
import { of, from } from 'rxjs';
of(10, 20, 30).subscribe(v => console.log(v)); // 10 20 30
from([1, 2, 3]).subscribe(v => console.log(v)); // 1 2 3
from(fetch('/api')).subscribe(res => console.log(res));Oppretterne interval og timer
interval sender ut stigende tall etter en tidsplan, mens timer venter og deretter sender ut en verdi.
import { interval, timer } from 'rxjs';
interval(1000).subscribe(n => console.log('tick', n));
// 0, 1, 2, ... every second
timer(2000).subscribe(() => console.log('after 2s'));HttpClient returnerer Observables
I Angular returnerer metodene i HttpClient Observables. Forespørselen sendes først når De abonnerer.
import { inject } from '@angular/core';
import { HttpClient } from '@angular/common/http';
const http = inject(HttpClient);
http.get('/api/users').subscribe(users => console.log(users));Subscription-objektet
subscribe() returnerer en Subscription. Kall unsubscribe() for å slutte å motta verdier og frigjøre ressurser.
import { interval } from 'rxjs';
const sub = interval(1000).subscribe(n => console.log(n));
// later
sub.unsubscribe(); // stops the streamFullføring kontra avslutning av abonnement
Når en observable kaller complete() eller error(), rydder den automatisk opp. For uendelige strømmer (interval, DOM-hendelser) må De avslutte abonnementet selv.
Kortform for observer
Hvis De bare er interessert i verdier, kan De sende inn én funksjon — den blir håndtereren for next.
of(1, 2, 3).subscribe(v => console.log(v));
// equivalent to { next: v => console.log(v) }Varm kontra kald (kort forklart)
Kalde observables begynner å produsere verdier når De abonnerer, og hvert abonnement får sin egen kjøring (HTTP, of, interval). Varme observables produserer verdier uavhengig av abonnenter og deler dem mellom abonnentene (Subjects møter De i neste del).
Hurtigsjekk
Test forståelsen Deres av observables.
Oppsummering: Observables og abonnementer
En Observable er en lat strøm som aktiveres med subscribe().
- Send ut verdier med next, fullfør med complete og mislykkes med error.
- Metodene i HttpClient returnerer observables — de starter ved abonnement.
- Avslutt abonnementer på uendelige strømmer for å unngå lekkasjer.
Neste: Subjects og BehaviorSubject.
Lær deg HTML med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 38
- Leksjoner
- 144
Ofte stilte spørsmål
Er leksjonen «Observables og abonnementer» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Angular Academy, inkludert «Observables og abonnementer», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Angular Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Observables og abonnementer»?
Opprett og abonner på observable-strømmer. Du øver på Angular Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Angular Academy?
Ingen tidligere erfaring er nødvendig. Angular Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Observables og abonnementer»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Angular Academy-leksjonen?
Ja. Alle Angular Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Observables og abonnementer
- Subjects og BehaviorSubject
- Avslutte abonnementer og minnelekkasjer
- async-pipen