【发布时间】:2021-03-02 14:37:15
【问题描述】:
我想在 Angular 循环中执行一些 firebase 操作。当我向 firebase 发送 HTTP 请求时,它返回一个可观察对象数组,因此使用 forkjoin 我将这个可观察对象数组转换为单个可观察对象。现在的问题是,当我订阅这些新的 observables 时,我什么也没得到
get_student_email() {
this.get_project_service
.get_project_by_doc_id(this.batchID, this.projectID)
.subscribe((res) => {
this.response = res;
this.email = this.response.student;
let data = this.email.map((email) =>
this.get_student_service.get_student_by_email_id(email)
);
let info = forkJoin([data]);
console.log('info:', info);
info.subscribe((res) => {
console.log(res);
console.log('Execute');
});
});
}
Output:info: Observable {_isScalar: false, _subscribe: ƒ}
我也试试这个。在这一次它再次返回 observables
let data = this.email.map((email) =>
this.get_student_service.get_student_by_email_id(email)
);
let info = forkJoin([data]);
console.log('info:', info);
info.subscribe((res) => {
console.log(res);
console.log('Execute');
});
});
Output:-
info: Observable {_isScalar: false, _subscribe: ƒ}
[Observable]
Execute
这是我的服务
get_student_by_email_id(email) {
return this.fire_store
.collection('User', (ref) => ref.where('email', '==', email))
.valueChanges();
}
我不知道这个问题背后的主要原因是什么。我想要的是,在循环完成执行后,它返回单个数组对象,其中包含有关属于该电子邮件数组(this.email)的所有用户的信息
【问题讨论】:
-
看来您在可观察对象中有可观察对象。请说明
this.email到底是什么以及this.get_student_service.get_student_by_email_id()函数返回什么。 -
现在查看这个函数返回用户信息
标签: javascript angular firebase google-cloud-firestore angularfire2