在angular2中的ngOnInit之后,在构造函数中订阅服务正在执行
正如我们所知,构造函数首先执行。。但当我试图订阅构造函数中的服务时,它是在ngOnInit之后执行的。。但我想在执行ngOnInt之前订阅该服务。你能帮帮我吗 这是我的示例代码在angular2中的ngOnInit之后,在构造函数中订阅服务正在执行,angular,angular2-services,angular2-directives,Angular,Angular2 Services,Angular2 Directives,正如我们所知,构造函数首先执行。。但当我试图订阅构造函数中的服务时,它是在ngOnInit之后执行的。。但我想在执行ngOnInt之前订阅该服务。你能帮帮我吗 这是我的示例代码 constructor(private otherRoleService: OtherRoleService) { this.data = [{ "roleid" : "0" }]; this.otherRoleService.ge
constructor(private otherRoleService: OtherRoleService) {
this.data = [{
"roleid" : "0"
}];
this.otherRoleService.getOtherRoles(this.data).subscribe(res => console.log('constructor'), err => this.fail(err));}
ngOnInit(){
console.log('OnInit')
}
您正在订阅一个事件,并且您在正确的时间执行该操作,唯一的问题是该事件在一段时间后被触发
如果您使用的是angular router,您可以检查该功能,这将确保在加载组件之前解析您的可观察对象您需要了解异步。你是在ngOnInit之前订阅的。但您稍后将从订阅接收第一个异步事件。就像,如果你订阅了一份时事通讯,然后吃了一片吐司,那么你的吐司会在收到时事通讯的第一封邮件之前被吃掉,可能是一两天后。@jbnize这不是取决于吐司的大小吗?我的意思是,如果你有一个由全尺寸面包做成的烤面包,吃它可能需要一些时间。这是一个关于事件循环的好视频,它将帮助你了解javascript是如何工作的,以及为什么你在onInit之后订阅数据: