我这里有两个功能:
// 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'。
这可能是一个愚蠢的问题,但有人可以解释我的区别吗?第一种方法不应该很好用吗?