我想http.get
从我的方法中调用一个方法ThemeService
并使其尽可能“同步”,以便在它Theme
从调用中获取后它是连续的。我搜索了如何做到这一点,并偶然发现了async
and await
。我试图实现这一点,但它并不完全奏效。我console.log()
在代码中放了一些,所以我可以看到什么是执行的,什么没有执行。“IN ASYNC FUNCTION”和“AFTER ASYNC”被执行,但不是在我调用之后/中的那些ThemeService
。
因为我对async/await
打字稿中的功能不熟悉,所以我不知道我写的内容是否糟糕,或者我想要做的事情是否可行。
ngOnInit():void{
let id = +this.routeParams.get('themeId');
async function getTheme(){
console.log("IN ASYNC FUNCTION");
var val = await this.themeService.getTheme(id).subscribe((theme:Theme)=> {
this.theme = theme;
console.log("IN AWAIT FUNCTION")
});
console.log("AFTER AWAIT");
return val;
}
getTheme();
console.log("AFTER ASYNC");
}