geo*_*gej 3 javascript promise observable angular-promise angular
我正在试图将可观察的变速器ActivatedRoute转换为承诺,但没有任何运气.我已http成功将请求转换为承诺:
this.riaService.getAdvisorsForState(this.activeState)
.then(rias => {
this.riasForState = rias.json();
console.log(this.riasForState);
});
// this all works ^
Run Code Online (Sandbox Code Playgroud)
但是我无法将'activatedRoute.params'变成一个承诺:
export class InvestmentAdvisorStateComponent implements OnInit {
constructor(private activatedRoute: ActivatedRoute, private riaService: InvestmentAdvisorService) { }
getStateFromUrl() {
this.activatedRoute.params
.toPromise()
.then(params => {
console.log('HERE',params)
});
}
// this does not work for me ^
Run Code Online (Sandbox Code Playgroud)
这就是我现在所拥有的:
getStateFromUrl() {
this.activatedRoute.params
.subscribe((param: any) => {
this.activeState = param['state'];
});
}
// works ^
Run Code Online (Sandbox Code Playgroud)
我希望将此作为一种承诺来实现,所以我可以.then脱离它.任何有关如何做到这一点的帮助非常感谢.
observable和promise之间的主要区别在于,observable可以发出多个事件,而promise只发出一个事件.
为了使您的示例有效,我假设您只对第一个事件感兴趣.
getStateFromUrl() {
this.activatedRoute.params
.first()
.toPromise()
.then(params => {
console.log('HERE',params)
});
}
Run Code Online (Sandbox Code Playgroud)
这样,创建的承诺toPromise()就完成了第一个params事件.
| 归档时间: |
|
| 查看次数: |
845 次 |
| 最近记录: |