Was bedeutet die .subscribe () - Funktion?
Ich bin der Codierung eine API mit Angular2
und NodeJS
ich bin die Implementierung der Dienste für meine ِAPI, die soll eine Liste mit den Aufgaben und anzeigen. Hier ist der task-service:
import {Injectable} from '@angular/core';
import {Http, Headers} from '@angular/http';
import 'rxjs/add/operator/map';
@Injectable()
export class TaskService{
constructor(private http:Http){
console.log('Task Service Initialized...');
}
getTasks(){
return this.http.get('http://localhost:3000/api/tasks')
.map(res => res.json());
}
}
Für meine getTask
Funktion (korrigiert mich wenn ich falsch bin) die .map()
Funktion nimmt meine Antwort und formatiert Sie in ein array von Werten.
Hier ist Sie nun, die Aufgabe, Komponenten, verwendet die task-service:
import { Component } from '@angular/core';
import {TaskService} from '../../services/task.service';
@Component({
moduleId: module.id,
selector: 'tasks',
templateUrl: 'tasks.component.html',
})
export class TasksComponent {
constructor(private taskService:TaskService){
this.taskService.getTasks()
.subscribe(tasks =>{
console.log(tasks);
})
}
}
Ich würde gerne verstehen, was diese .subscribe()
- Funktion funktioniert und ich kann nicht finden alle relevanten Informationen.
- ein guter start: reactivex.io/rxjs/manual/overview.html
- Es ist sehr hart nicht relevante Informationen zu finden, mit der die meisten grundlegenden web-Suche, oder indem Sie in der rxJS docs, oder für Angular-spezifische Nutzung, die Winkelgeschwindigkeit docs, unter anderen Orten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
.subscribe()
Funktion ist ähnlich wie die.then()
Funktion injQuery
, aber statt sich mitpromise
s es befasst sich mitObservable
s.Das bedeutet, dass es abonnieren, sich die
observable
von Interesse (die istgetTasks()
in Ihrem Fall) und warten, bis essuccessful
und führt dann die übergebene callback-Funktion, die in Ihrem Fall ist:function
notation, aber der Vorteil der Verwendung desarrow
notation (die=>
) ist, dass es behält die Bedeutung vonthis
finden Sie in diesem ArtikelDen wichtigsten Vorteil von
subscribe
im Vergleich zu den Versprechenthen
- können Sie teilen änderungen mitobserver.next(data)
viele Male und Ihre Abonnenten reagieren auf jede Veränderung.Also, wenn Sie mehrere Listener an die gleiche event - alle von Ihnen erhalten change-Ereignis jedes mal, wenn Beobachter neue Daten zu generieren und rufen
observer.next()
. Es ist sehr nützlich, wenn Sie Daten haben, die können Häufig gewechselt werden, und Sie wollen Einzel-und vorhersehbar flow zu informieren Ihrer Zuhörer.Versprechen
then
ermöglichen es Ihnen, zu warten, Ihre asynchroner Vorgang einmal.