当我在 promise angular typescript 中设置它时,值总是未定义
value always undefined when I set it in promise angular typescript
我在 accountService.ts 中有一个函数 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 打字稿。
谢谢
您的函数 getData()
似乎 return 没有值。我会遵循以下方法
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}))
)
}
现在我们正在 returnObservable<{user: any, account: any}>
。在使用此函数的组件中,我们可以使用 subscribe
访问值
ngOnInit() {
this.accountService.getData().subscribe({
next: data => {
// access account using data.account and user using data.user
}
})
}
我在 accountService.ts 中有一个函数 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 打字稿。
谢谢
您的函数 getData()
似乎 return 没有值。我会遵循以下方法
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}))
)
}
现在我们正在 returnObservable<{user: any, account: any}>
。在使用此函数的组件中,我们可以使用 subscribe
ngOnInit() {
this.accountService.getData().subscribe({
next: data => {
// access account using data.account and user using data.user
}
})
}