【发布时间】:2021-03-02 11:03:29
【问题描述】:
我正在尝试使用 forkjoin 以角度方式执行多个 HTTP 请求。但是当我订阅 Observable 时,它没有给出任何响应。
let data = this.email.map((email) =>
this.get_student_service.get_student_by_email_id(email)
);
forkJoin([data]).subscribe((res) => {
console.log(res);
});
console.log('Execute');
这是我的服务
get_student_by_email_id(email) {
return this.fire_store
.collection('User', (ref) => ref.where('email', '==', email))
.valueChanges();
}
【问题讨论】:
-
你能摆脱地图,直接让 data = this.get_student_sesrvices.get_student_by_email_id(this.email)。 ?
-
同样的问题无法订阅。空响应
-
你的
this.email是什么?当你得到它?请记住,除非您在 this.email 中没有任何价值,否则您无法创建 forkJoin 和订阅。看起来您在异步函数中为 this.email 赋予了价值,并在异步函数完成之前执行了 forkJoin 订阅 -
this.email 包含一个电子邮件地址的数组
-
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.response.student.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')})})}
标签: javascript angular firebase google-cloud-firestore rxjs