Ce qui ne l' .subscribe() est la fonction?
Je suis codage d'une API avec Angular2
et NodeJS
, je suis la mise en œuvre de services pour mon ِAPI qui est censé obtenir une liste des tâches et de l'afficher. Ici est la tâche de 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());
}
}
Pour mon getTask
fonction (corrigez-moi si je me trompe) le .map()
fonction prend ma réponse et les met en forme dans un tableau de valeurs.
Voici maintenant, le groupe de composants qui utilise le service de tâche:
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);
})
}
}
Je voudrais comprendre ce que cela .subscribe()
fonction, et je ne peux pas trouver les informations pertinentes.
un bon début: reactivex.io/rxjs/manual/overview.html
Il va être très dur pas pour trouver l'information pertinente, avec la plupart des sites web de base de recherche, ou en consultant le rxJS docs, ou Angulaire pour une utilisation spécifique, l'angle de docs, parmi d'autres endroits.
Il va être très dur pas pour trouver l'information pertinente, avec la plupart des sites web de base de recherche, ou en consultant le rxJS docs, ou Angulaire pour une utilisation spécifique, l'angle de docs, parmi d'autres endroits.
OriginalL'auteur Aria Groult | 2017-02-02
Vous devez vous connecter pour publier un commentaire.
La
.subscribe()
fonction est similaire à la.then()
fonction dansjQuery
, mais au lieu de traiter avecpromise
s il traite avecObservables
s.Cela signifie qu'il va vous abonner à la
observable
d'intérêt (qui estgetTasks()
dans votre cas) et attendre jusqu'à ce qu'il estsuccessful
, puis d'exécuter la fonction de callback qui dans votre cas est:oui, il est possible d'utiliser les
function
la notation, mais l'avantage de l'utilisation de laarrow
notation (le=>
), c'est qu'il préserve le sens dethis
, voir ce articleOriginalL'auteur Tha'er M. Al-Ajlouni
Le principal avantage de
subscribe
l'on compare à la promessethen
- vous pouvez vous informer des modifications à l'aideobserver.next(data)
beaucoup de temps et de vos abonnés vont réagir à chaque changement.Donc, si vous avez plusieurs auditeurs pour le même événement - tous d'entre eux recevra événement de changement à chaque fois observateur de générer de nouvelles données et de les appeler
observer.next()
. Il est très utile lorsque vous avez des données qui peuvent être changés fréquemment et que vous voulez unique et de la prévisibilité des flux d'informer vos auditeurs.Promesse
then
vous permettre d'attendre votre opération asynchrone fois.OriginalL'auteur VadimB