-1

我有以下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();
  }
4

2 回答 2

0

您需要添加return到方法connect中,或者如果您不想从方法中返回任何内容,则只需添加关键字 void

connect(): Observable<Product[]> {
  return  this.productsService.getProducts();
  return   this.productsService.getProductUpdateListener()
于 2019-05-19T03:30:04.630 回答
0

这就是我修复它的方法。我删除了 connect() 函数并将其移至 ngOnit。并稍作修改。

  ngOnInit() {
    this.productsService.getProducts();
    this.productsService
      .getProductUpdateListener()
      .subscribe((products: Product[]) => {
        this.products = products;
        this.dataSource = new MatTableDataSource(this.products);
      });
  }
于 2019-05-19T08:15:46.220 回答