Typescript 函数不';Don’不要等待订阅来获取信息

Typescript 函数不';Don’不要等待订阅来获取信息,typescript,firebase,ionic-framework,Typescript,Firebase,Ionic Framework,我从firebase获取数据,将其保存在一个可观察对象中,然后订阅以提取数据 在我的服务中,我订阅了一个observable,以使用此方法获取数据 canAddBookmark(item : bookmark){ let canAdd = true; this.bookmarks.subscribe((data)=>{ alert("First!!!"); for(let i =0;i<data.len

我从firebase获取数据,将其保存在一个可观察对象中,然后订阅以提取数据

在我的服务中,我订阅了一个observable,以使用此方法获取数据

canAddBookmark(item : bookmark){
     let canAdd = true;
      this.bookmarks.subscribe((data)=>{
       alert("First!!!");
      
      for(let i =0;i<data.length;i++){
         if(item.idd==data[i].idd&&item.email==data[i].email){
          
          canAdd=false;
        return canAdd;
      }
      }
      canAdd = true;
    }

    );
    
    return canAdd;
    
    
}
带有“第二个”的警报位于“第一个”之前。是否仍然需要让函数等待另一个函数返回布尔值


我尝试使用async/Wait,但失败了。

将其更改为承诺-检查此步骤。希望这对你有帮助。
addBookmark(idd:number){
    let temp:bookmark = {idd:idd,email:this.email};
    
    let val =   this.bookmarkDb.canAddBookmark(temp);

    alert("Second!!!!");
    if(val==true){
      alert("success");
      this.bookmarkDb.addBookmark(temp);
    }
    if(val==false){
    alert("Already book marked");}
  
 
}