【发布时间】:2018-04-11 14:45:41
【问题描述】:
我有以下返回观察者的方法,但它被调用了两次:
public getClassesAndSubjects(school: number, whenDate: string): Observable<ClassesAndSubjects[]> {
console.log('1');
const observable = this.classService.GetClassesAndSubjects(school, whenDate);
console.log("2");
observable.subscribe(data => {
if (!data.hasOwnProperty('errors')) {
this.classesSubjects = data;
}
}, error => {
console.log("ERROR loading GetClassesAndSubjects: " + error);
});
console.log("3");
return observable;
}
我的意思是一行const observable = this.classService.GetClassesAndSubjects(school, whenDate); 被调用两次并向服务器发送两次请求。
这样称呼:
this.classInstance.getClassesAndSubjects(school, date).subscribe(value => {
// TODO
});
【问题讨论】:
-
你在哪里给
this.classInstance.getClassesAndSubjects打电话? -
您在浏览器的开发者工具中的“网络”选项卡中看到此问题?
-
您在方法内部订阅了一次,并且大概在外部订阅了一次......为什么您希望它只被调用一次?
-
İ 通过点击在组件中调用
this.classInstance.getClassesAndSubjects -
您非常清楚地订阅了两次,一次在 getClassesAndSubjects 内部,然后您订阅了相同的 observable 的返回值。
标签: angular rxjs observable