簡體   English   中英

當我在 promise angular typescript 中設置時,值始終未定義

[英]value always undefined when I set it in promise angular typescript

我在 accountService.ts 中有一個 function getData()。 我正在嘗試在 zip promise 中同時獲取用戶數據和用戶帳戶數據。 Resolve 工作正常並且我得到了正確的數據,但是當我嘗試將這些局部變量設置為返回值時,它們總是未定義。 我想將它們設置為在其他功能中使用它們。

getData(){
    zip(this.getUser(), this.getAccount()).toPromise().then(data =>{
        this.user = data.values[0];
        console.log(this.user);            
        this.account = data.values[1];
        resolve(data.values[0],data.values[1]);
     });         
}

我使用 Angular 8 和 typescript。

謝謝

您的 function getData()似乎沒有返回任何值。 我會遵循以下方法

getData(){
    return zip(this.getUser(), this.getAccount()).pipe(
      tap(data => {
        this.user = data.values[0];
        this.account = data.values[1];
      }),
      map(({user, account}) => ({user, account}))
    )       
}

現在我們返回一個Observable<{user: any, account: any}> 在使用此 function 的組件中,我們可以使用subscribe訪問這些值

ngOnInit() {
  this.accountService.getData().subscribe({
    next: data => {
      // access account using data.account and user using data.user
    }
  })
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM