首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角ngOnInit()

角ngOnInit()
EN

Stack Overflow用户
提问于 2018-12-06 02:44:15
回答 1查看 69关注 0票数 0

我尝试在我的ngOnInit方法中为每个人执行a(我使用角4+)。但它不能

这是我的代码:

代码语言:javascript
复制
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()不工作:/

EN

回答 1

Stack Overflow用户

发布于 2018-12-06 02:47:09

在确定得到结果后使用同步逻辑,在this.sellerUser();下使用Subscripition。在当前的实现中,this.sellerUser();将在订阅结束之前被调用(因为订阅是异步的,并且在执行所有同步代码后将最终执行)。

代码语言:javascript
复制
this._sellerService.getSellers()
  .subscribe(data3 => {
     this._sellers = data3;
     this.sellerUser(); // here
 });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53643841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档