如何解决属性'pipe'在类型'void'Angular 9中不存在
我为角音频创建了一个功能:
private streamObservable(url) {
new Observable(observer => {
// Play audio
this.audioObj.src = url;
this.audioObj.load();
this.audioObj.play();
const handler = (event: Event) => {
observer.next(event);
};
this.addEvents(this.audioObj,this.audioEvents,handler);
return () => {
// Stop Playing
this.audioObj.pause();
this.audioObj.currentTime = 0;
// remove event listeners
this.removeEvents(this.audioObj,handler);
};
});
}
当我需要使用该功能时,会显示错误消息:
功能使用:
playStream(url) {
return this.streamObservable(url).pipe(takeUntil(this.stop$));
}
并显示此错误:
类型'void'上不存在属性'pipe'。
是什么问题?我该如何解决?
解决方法
您需要从调用的函数中返回可观察对象。
就像-return new Observable (observer => {
private streamObservable(url) {
return new Observable(observer => {
// Play audio
this.audioObj.src = url;
this.audioObj.load();
this.audioObj.play();
const handler = (event: Event) => {
observer.next(event);
};
this.addEvents(this.audioObj,this.audioEvents,handler);
return () => {
// Stop Playing
this.audioObj.pause();
this.audioObj.currentTime = 0;
// remove event listeners
this.removeEvents(this.audioObj,handler);
};
});
}
,
对我来说,解决方案是一个非常简单的错误,在我的情况下,我返回了一个 observable,但我没有正确调用该方法。我错过了方法调用中的 ()
。
原始代码
this.service.method.pipe().subscribe();
固定代码
this.service.method().pipe().subscribe();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。