【发布时间】:2019-02-28 23:10:46
【问题描述】:
private save(payload) {
const newMedias: Observable<Media>[] = [];
const newMediaInStepIndex: number[] = [];
(payload.formData.steps).forEach((step: Step, stepIndex: number) => {
const media: Observable<Media> = this.createOneMedia(step);
if (media !== undefined) {
newMedias.push(media);
newMediaInStepIndex.push(stepIndex);
}
});
forkJoin(newMedias).subscribe(medias => {
medias.forEach((media, i) => {
console.log('Media created with id: ' + media.id + ' in step ' + newMediaInStepIndex[i]);
payload.formData.steps[newMediaInStepIndex[i]].media[0].id = media.id;
});
});
return this.createRecipe(payload);
}
我的问题是以下行是异步执行的,因此不是在结束返回之前:
payload.formData.steps[newMediaInStepIndex[i]].media[0].id = media.id;
所以我需要在订阅结束后返回结束。我想我们必须把这个功能减半。
重要提示:保存时返回(有效负载)
【问题讨论】:
-
类似问题
https://stackoverflow.com/q/48879798/1876572 -
@Eldho,在此示例中不会返回
save(isNew)。那是我的问题。