我有一个方法:
category.json
调用此方法:
CompressContent
当我调用public async findByEmail(email: string): Promise<User> {
await this.findAll().toPromise().then(users => {
users.forEach(user => {
if (user.email === email) {
console.log(user);
return of(user);
}
});
});
return null;
}
方法时,我得到 public findAll(): Observable<User[]> {
return this.httpClient.get(this.userUrl) as Observable<User[]>;
}
。我认为这是因为内部存在嵌套循环。
如何返回用户实例(或承诺)
答案 0 :(得分:2)
这是因为.forEach
方法未返回任何内容。尝试改用.filter
:
public async findByEmail(email: string): Promise<User> {
const users = await this.findAll().toPromise();
const withSameEmail = users.filter(user => user.email === email);
return withSameEmail;
}
答案 1 :(得分:1)
在方法findByEmail()中不返回promise。
直接返回“等待”前面,如下所示。
return await this.findAll().toPromise()