我正在尝试从GET调用到我的对象的地图响应,该对象具有带有JSON对象的属性1:1。这是我的代码:
线程模型:
export class Thread {
private source: Source;
private target: Target;
private messages: Message[];
constructor(data) {
this.source = data.source;
this.target = data.target;
this.messages = data.messages;
}
sum() {
return 'Hello from Thread';
}
}
线程服务:
@Injectable()
export class ThreadService {
constructor(private http: HttpClient) {
}
getAll(): Observable<Thread[]> {
return this.http.get<Thread[]>('/api/thread').map(value => new Thread(value))
}
}
ThreadService中的getAll方法给出了以下错误:
src / app / service / thread.service.ts(13,5):错误TS2322:类型 &#39;
中缺少Observable<Thread>
&#39;不能分配给&#39;Observable<Thread[]>
&#39;。 输入&#39;Thread
&#39;不能分配给&#39;Thread[]
&#39;。 财产包括&#39;类型&#39;Thread
&#39;。
您能否告诉我将模型响应映射到模型的正确方法是什么?我可以在该模型中调用自定义方法?我读了一些关于拦截器的事情,但我无法找到任何例子。谢谢你的帮助。
答案 0 :(得分:1)
@Injectable()
export class ThreadService {
constructor(private http: HttpClient) {
}
getAll(): Observable<Thread[]> {
return this.http.get<Thread[]>('/api/thread').map(threads=> threads.map(thread => new Thread(thread)))
}
}