首页 > 解决方案 > 将值直接传递给 http 请求与之前定义之间的区别

问题描述

我这里有两个功能:

// creates url /messages?data=undefined ->results into error
update1() {
  this.httpClient.get <any>> (
    this.dataService.url + '/messages?data=' + ( < any > window).settings.seq || '0', {
      headers: this.dataService.headers
    }
  ).subscribe((result: aby ) => {
    if (!result)
      return;

// ...
  }, (error: any) => {
    this.dataService.HandleError(error);
  });
}

// creates url /messages?data=0 -> works
update2() {
let seq = ( < any > window).settings.seq || '0';
  this.httpClient.get <any>> (
    this.dataService.url + '/messages?data=' + seq, {
      headers: this.dataService.headers
    }
  ).subscribe((result: aby ) => {
    if (!result)
      return;

// ...
  }, (error: any) => {
    this.dataService.HandleError(error);
  });
}

(<any>window).settings.seq如果未定义(它不使用'0'值),第一个不起作用,但是如果我将它定义为变量(如示例中update2()),它工作正常并使用'0'。

这可能是一个愚蠢的问题,但有人可以解释我的区别吗?第一种方法不应该很好用吗?

标签: javascripttypescript

解决方案


推荐阅读