【发布时间】:2019-05-31 12:11:34
【问题描述】:
我有这个 service.ts 代码:
export class BasicOperationService {
constructor() { }
delete(service: any, object: any, data: any): Observable<any> {
const id = this.getId(object);
let index: number;
for (let i = 0; i < data.length; i++) {
if ( data[i].id === id) {
index = i;
break;
}
}
return service.delete(id).subscribe(result => {
data.splice(index, 1);
return data;
}, error => {
console.log(error);
return data;
});
}
}
我有这个component.ts:
delete(object: any, id: number) {
this.loadingId = id;
this.basicOperation.delete(this.photoalbumService, object, this.content.data)
.subscribe(result => {
this.content.data = result;
this.loadingId = 0;
});
}
现在我收到此错误消息:
TypeError: this.basicOperation.delete(...).subscribe is not a function
如何从 BasicOperationService 的 delete() 方法中返回一个 observable?
【问题讨论】:
-
你应该在服务中返回
service.delete(id).pipe(...),在管道中你可以清理你的数据。调用 subscribe 返回一个订阅。 -
@netdjw,不订阅服务(真的是个坏主意)。你有一个服务并且想要返回一个 observable,看我的回答
标签: angular observable angular7 angular-observable