我有以下DataTable DataSource
代码无法编译。我收到以下编译错误。
其声明类型既不是'void'也不是'any'的函数必须返回 一个值。
connect(): Observable<Product[]> {
this.productsService.getProducts();
this.productsService
.getProductUpdateListener()
.subscribe((products: Product[]) => {
this.products = products;
});
}
我的服务类具有以下代码。
getProducts() {
this.http
.get<{ message: string; products: Product[] }>(
'http://localhost:3000/api/products'
)
.subscribe(productData => {
this.products = productData.products;
this.productsUpdated.next([...this.products]);
});
}
getProductUpdateListener() {
return this.productsUpdated.asObservable();
}
答案 0 :(得分:0)
您需要将 return
添加到方法 connect
中,或者如果您不想从中返回任何内容,则只需添加一个关键字void方法
connect(): Observable<Product[]> {
return this.productsService.getProducts();
return this.productsService.getProductUpdateListener()
答案 1 :(得分:0)
这就是我修复它的方式。我删除了connect()函数并将其移至ngOnit。并做了一些修改。
ngOnInit() {
this.productsService.getProducts();
this.productsService
.getProductUpdateListener()
.subscribe((products: Product[]) => {
this.products = products;
this.dataSource = new MatTableDataSource(this.products);
});
}