我是 Angular 应用程序的新手。我不明白究竟是如何subscribe工作的。我目前的阻碍是我不明白为什么在console.log("B")之前执行console.log("A"),从而呈现空数组的结果(请参阅console输出链接)。
我试图将所有代码放在一个函数中async/await以等待该函数。我不明白为什么它不起作用。
在这种情况下等待订阅的最佳方式是什么?
在console.log("B")必须后执行console.log("A")。
this._roleService.getRoleTypes(this.token).subscribe(
response => {
if(response.status != "error" && response.code != 400){
let _roleTypes:Array<RoleType> = new Array<RoleType>();
_roleTypes = new Array<RoleType>();
response.data.forEach(rt => {
let roleType:RoleType = new RoleType(
rt.id,
rt.name
);
_roleTypes.push(roleType);
});
console.log("A");
console.log(_roleTypes);
this.roleTypes = _roleTypes;
}
else{
this._loginService.destroySession();
}
},error => {
this.errorMessage = <any>error;
if(this.errorMessage != null){
console.log(this.errorMessage);
alert("Petition Error");
}
}
);
console.log("B");
console.log(this.roleTypes);
Run Code Online (Sandbox Code Playgroud)