在我的angular 8应用程序中,我有此服务:
export class TodoService {
private url:string ="http://192.168.99.100:2403/todos";
sTodos:Subject<Todo[]>= new Subject<Todo[]>();
sTodos$=this.sTodos.asObservable();
constructor(private http:Http) { }
getTodos(){
return this.http.get(this.url).map((r)=>{
let data = r.json();
this.sTodos.next(data);
});
}
在我的组件中,我调用getTodos函数:
export class TodoListComponent implements OnInit {
todos:Todo[]=[];
constructor(private todoService:TodoService) { }
ngOnInit(){
this.todoService.getTodos().subscribe((todos) =>{
this.todos = todos;
});
}
}
我收到此错误
类型'void'不能分配给类型'Todo []'。
答案 0 :(得分:-2)
您可以为http
调用添加显式类型。
编辑:
如果您使用的是Angular 8,则还应该使用新的Http Client
constructor(private http:HttpClient) { }
getTodos(){
return this.http.get<Todo[]>(this.url)
.pipe(
tap((data)=>{
this.sTodos.next(data);
});
)
}