为什么我总是在角度上变得虚假?

时间:2018-01-23 15:11:11

标签: javascript angular typescript

trouve(id:number):boolean{  
    var bool :boolean =false
    this.comapanyService.query().subscribe((resula)=>{
           for (let i = 0; i < resula.json.length; i++) {
               try {
             if( id == resula.json[i].user.id)
                 {
   console.log('id-user:',id ,'user in company:',resula.json[i].user.id,'company :',resula.json[i].id )
                     bool = true
                   }
                } 
               catch (error) {}
           }
           console.log('bool fin pour :',bool)
      })
      console.log(bool)
      if(bool) return true;else return false
  }

 confirmDelete(login) {
    this.userService.find(login).subscribe((response)=>{
         const id =response.id
        console.log('resulta :', this.trouve(id))
    })
}
  • 结果:假
  • id-user:7202
  • 公司用户:7202公司:5151
  • bool fin pour:true

为什么我总是得到false

1 个答案:

答案 0 :(得分:0)

因为this.comapanyService.query()是异步操作并且需要一点点。这意味着下面的行总是在结果出现之前执行(当bool值没有改变时):

bool