有一个功能:
getData (id: number, objectId: number): Observable<ObjectData | undefined> {
let res$;
if (!this.objectData.length) {
this.loadObjectData(id)
.subscribe((objectData) => {
res$ = objectData.find((i: ObjectData) => i.id === objectId);
},
);
} else {
res$ = this.objectData.find((i: ObjectData) => i.id === objectId);
}
return of(res$);
}
我怎样才能做到这一点,给定条件if (!this.objectData.length),函数等待加载完成并将值放入变量中res$?
您不需要为变量赋值,而是立即返回
Observable,并转换数据,使用管道和.map()方法。在这种情况下,您无需等待订阅结束。所有的等待都已经在调用 getData 方法的地方了