[英]Angular ngOnInit()
I try to execute a for each in my ngOnInit
method (i use Angular 4+). 我尝试在
ngOnInit
方法中为每个执行一个(我使用Angular 4+)。 But it doesn't perform 但是它没有执行
there is my code : 有我的代码:
export class ObjectDetailComponent implements OnInit {
public object$: Object ;
private member$: Object ;
private _sellers = [];
private _seller: string;
constructor(private route: ActivatedRoute, private _cookieService: CookieService,
private _objectService: AuctionedObjectService, private _memberService: MemberService, private _sellerService: SellerService) {
this.route.params.subscribe( params => this.object$ = params.id );
}
ngOnInit() {
this._objectService.getObject(this.object$).subscribe(
data => this.object$ = data);
this._memberService.getMember(Number(this._cookieService.get('login')))
.subscribe(data2 => this.member$ = data2);
this._sellerService.getSellers()
.subscribe(data3 => this._sellers = data3);
this.sellerUser();
}
public sellerUser(){
for(const seller of this._sellers){
if(Number(this._cookieService.get('login')) === seller.idUser){
this._seller = seller.username;
break;
}
}
}
}
The sellerUser()
doesn't work :/ sellerUser()
不起作用:/
Use your synchronous logic after you are sure you have got the result, use this.sellerUser();
确定获得结果后,请使用同步逻辑,请使用
this.sellerUser();
under your Subscripition
. 在您的
Subscripition
。 In your current implementation, this.sellerUser();
在您当前的实现中,
this.sellerUser();
will get called before your subscription is over(coz subscription is async and will be executed at last after executing all your sync code) 将在您的订阅结束之前被调用(coz订阅是异步的,将在执行所有同步代码后最后执行)
this._sellerService.getSellers()
.subscribe(data3 => {
this._sellers = data3;
this.sellerUser(); // here
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.