我在一个组件中使用了带有路由的解析,但在解析中,一个HTTP调用依赖于另一个Promise调用。
resolve(){
return this.storage.getUser().then( user => {
this.getVendorDetails(user.login);
});
}
getVendorDetails(loginId) {
return this.http.get('http://localhost:8080/user/getVendor/' + loginId);
}
当我尝试从组件中获取数据时ActivatedRoute
ngOnInit() {
this.activatedRoute.data.subscribe( data => {
console.log(data);
});
}
我越来越undefined
.也许我在解析函数中缺少一些东西。如何使用ActivatedRoute
将getVendorDetails()
响应ngOnInit()
。
要么让一个成为观察者,要么让另一个成为承诺,并始终返回以下内容:
resolve() {
return this.storage.getUser().then(user => this.getVendorDetails(user.login).toPromise());
}
或
resolve() {
return from(this.storage.getUser()).pipe(
switchMap((user) => this.getVendorDetails(user.login))
);
}