[英]Angular ngOnInit()
我嘗試在ngOnInit
方法中為每個執行一個(我使用Angular 4+)。 但是它沒有執行
有我的代碼:
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;
}
}
}
}
sellerUser()
不起作用:/
確定獲得結果后,請使用同步邏輯,請使用this.sellerUser();
在您的Subscripition
。 在您當前的實現中, this.sellerUser();
將在您的訂閱結束之前被調用(coz訂閱是異步的,將在執行所有同步代碼后最后執行)
this._sellerService.getSellers()
.subscribe(data3 => {
this._sellers = data3;
this.sellerUser(); // here
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.