【问题标题】:How can I use multiple statements in an Angular ES6 Observer function?如何在 Angular ES6 Observer 函数中使用多个语句?
【发布时间】:2020-05-15 04:18:24
【问题描述】:

原来的约定是做这样的事情

    this.productService.getProducts().subscribe({
      next: products => {
        this.products = products
        this.filteredProducts = products
      },
      error: err => this.errorMessage = err

但是,当尝试使用下面的 ES6 快捷方式时,我无法获取下一个函数来处理多个语句。如果我使用一个语句,它就可以正常工作。

    //   next(products) {
    //     this.products = products
    //     this.filteredProducts = products},
    //   error(err) {this.errorMessage = err}

这里可以写多行吗?

【问题讨论】:

  • 您是否将next(){}, error(){} 包裹在花括号内以使其成为单个参数(观察者)?
  • @AndrewAllen 是的,作为观察者,它们在花括号内
  • 类似于 keith 我无法复制问题stackblitz
  • 你能澄清为什么你认为this.filteredProducts = products 不起作用(我怀疑它是)
  • @AndrewAllen 它适用于我的第一个代码块,我可以看到我的产品。当我在第二个代码块中尝试时,我根本看不到我的产品

标签: angular observable observers


【解决方案1】:

您使用它的方式应该有效。这是我创建的一个堆栈来验证.. https://stackblitz.com/edit/typescript-ug28l2

【讨论】:

  • +1 为您解答。它似乎适用于控制台日志,但不适用于我的 this.filteredProducts = products 语句。我不明白为什么......
【解决方案2】:

只需删除 next:error:

this.productService.getProducts().subscribe(products => {
            this.products = products
            this.filteredProducts = products
          },
          err => {
            this.errorMessage = err
          });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-15
    • 1970-01-01
    相关资源
    最近更新 更多