【问题标题】:TSLint returns expected an assignment or function callTSLint 返回预期的赋值或函数调用
【发布时间】:2017-05-08 23:41:05
【问题描述】:

我正在使用 tslint 检查我的 angular 项目,我收到了这个错误,我不明白其中的原因。错误是:期望赋值或函数调用

getInfoPrinting() {
this.imprimirService.getInfoPrinting().subscribe(
  response => {
    this.loading = false;
    this.printingOrders = response.data;
    this.totalNumberOfCharacters = 0;
    this.totalNumberOfCharactersNext = 0;
    if (this.printingOrders.labelPresentOrder && this.printingOrders.labelPresentOrder.lines) {
      this.printingOrders.labelPresentOrder.lines.forEach(
        line => {
          this.totalNumberOfCharacters += line.length;
        }
      );
    }
    if (this.printingOrders.labelNextOrder && this.printingOrders.labelNextOrder.lines) {
      this.printingOrders.labelNextOrder.lines.forEach(
        line => {
          this.totalNumberOfCharactersNext += line.length;
        }
      );
    }
    if (this.printingOrders.printing) {
      this.suscribeNotifications();
    }
  }
), err => {
  this.loading = false;
  this.alertService.error(INFO_NO_EXISTEN_ORDEN_PREPARADA);
  this.hasAlert = true;
};

}

错误在这一行:

this.imprimirService.getInfoPrinting().subscribe(

我做错了什么?

谢谢。

【问题讨论】:

  • 我不认为这是你的 linter,我认为你的右括号和分隔 subcribe 的回调参数的逗号放错了位置。
  • 尝试将response 放在括号内,如下所示:this.imprimirService.getInfoPrinting().subscribe((response) => { ... });

标签: angular typescript tslint


【解决方案1】:

您的代码不正确。而不是

getInfoPrinting() {
    this.imprimirService.getInfoPrinting().subscribe(
      response => {
        ...
      }
    ), err => {
      ...
    };
}

应该是

getInfoPrinting() {
    this.imprimirService.getInfoPrinting().subscribe(
      response => {
        ...
      }, 
      err => {
      ...
    });
}

如果方法体更短,错误会更容易发现。您应该委托给回调中的单独方法。

【讨论】:

  • 将响应放在括号中或不带括号有什么区别?示例:.subscribe((response) => { ... })
  • 无。如果您有多个参数(或没有参数),则需要括号。
猜你喜欢
  • 2016-09-12
  • 2018-10-21
  • 2019-03-31
  • 1970-01-01
  • 2020-12-16
  • 2014-12-26
  • 1970-01-01
  • 2020-12-19
  • 1970-01-01
相关资源
最近更新 更多