我在理解Angular(或打字稿)中Observables的概念时遇到麻烦,并且正在寻找可以帮助我更好地理解的技巧。
例如,我有以下情况:我从Firestore数据库获取数据。我有流程,每个流程都将每个步骤的步骤关联到一个单独的集合中。到目前为止,可以正常显示数据。
现在,当我删除一个流程项目时,我也想删除相关的步骤。
这是我到目前为止的代码:
以下方法有效:
getProcessSteps(sid:string): Observable<Step[]> {
return this.steps.pipe(map(steps => steps.filter(st => st.processid == sid)));
}
这也可以工作(除了对deleteProcessSteps方法的调用之外):
deleteProcess(id) {
// delete associated steps
this.deleteProcessSteps(id);
this.processDoc = this.afs.doc<Process>(`processes/${id}`);
this.processDoc.delete();
}
这是我想了解的内容:
deleteProcessSteps(processid) {
let stepdocs = this.getProcessSteps(processid);
//Delete the steps
for (let s of stepdocs) { // <-- not working
this.stepDoc = this.afs.doc<Step>(`steps/${s.id}`);
this.processDoc.delete();
}
}
我收到错误消息:类型'Observable'不是数组类型或字符串类型。尽管我觉得这不太合逻辑,但我必须接受。
任何有关如何解决此问题的建议都将受到欢迎!