【发布时间】:2017-11-19 13:44:08
【问题描述】:
我有一个 http 服务,我需要根据用户的输入来调用它。
saveImage(): Observable<Photo> {
if (!this.squaredImage) {
return Observable.of();
}
this.photoCreateDto = {
sourcePhoto: this.sourceImage,
squaredPhoto: this.squaredImage,
fileExtension: this.fileExtension
};
return this.photoService.createPhoto(this.photoCreateDto);
}
我从另一个保存函数调用saveImage:
save() {
this.saveImage().subscribe((newPhoto: Photo) => {
.. never gets here
});
}
如果this.squaredImage 没有值并且返回空承诺,则链结束。如果调用createPhoto 服务,它会继续。我也尝试过返回Observable.empty()。在 rxjs 中如何处理这种情况?
【问题讨论】:
-
那么你期望会发生什么?
-
我希望每次都调用
saveImage的回调。我认为我错误地将其与then承诺链进行了比较,并试图返回一个空承诺。 -
然后你需要返回一个发出值的可观察对象。不是空的。每个发出的事件都会调用订阅回调。所以如果你从不发出一个事件,它就永远不会被调用。
-
@JBNizet
Observable.of不构造一个只有一个值的可观察对象吗? -
@Bergi 如果您将参数传递给方法,它会这样做。
标签: angular promise rxjs observable