【发布时间】:2017-10-05 12:35:50
【问题描述】:
我想在另一个订阅方法中使用一个值,但它给了我 undefined 因为它不是异步的。有没有一种方法可以一起使用这些值?我想在以下订阅方法中再次使用this.internships,但它变得未定义。感谢您的帮助!
代码:
ngOnInit(): void {
this._internshipAssignmentService.getInternshipAssignments()
.subscribe(internships => { this.internships = internships; <---- value which gives an object
this.internshipsHelper = internships; console.log(this.internships)},
error => this.msgs.push({
severity: 'error',
summary: 'Error',
detail: 'Er is een onverwachte fout opgetreden.'
}));
this.sub = this._route.params.subscribe(
params => {
let id = +params['id'];
this._internshipAssignmentService.getAllFavorites()
.subscribe(f => {
this.favorites = f;
this.favorite = this.getFavoritesFromIdStudent(1);
console.log(this.internships); <----- value which gives undefined
this.getFavorites(this.favorite);
});
}
);
}
【问题讨论】:
-
所以你想合并两个 observables 的结果?使用
Observable.combineLatest。 -
我只需要第二个中的第一个值是的。我现在正在查看 combineLatest 方法,但很难找到两个订阅方法。 @jonrsharpe
-
你是什么意思“有两个订阅方法”?只是
Observable.combineLatest(this._internshipAssignmentService.getInternshipAssignments(), this.router.params, (assignments, params) => { ... });
标签: angular service undefined observable angular2-services