Httpparams set function call directlry or after cemicolmn 有什么不同

What is different that Httpparams set function call directlry or after cemicolmn

我在 angular 6 中使用了 httpparams。我有一个问题。

当我将 Httpparams 与 set 一起使用时,set 函数在构造函数之后调用或调用变量名是非常不同的。

funtionTest(): any{
    let params: HttpParams = new HttpParams()
            .set('one','one')
            .set('two','two')
            .set('thr','thr');
    ... some request
}

funtionTest2(): any{
    let params: HttpParams = new HttpParams();
    params.set('one','one');
    params.set('two','two');
    params.set('thr','thr');
    ... some request
}

如果我调用 functionTest(),那 one two thr 描述查询字符串

ex) requestUrl?one=one&two=two&thr=thr;

但是,如果我调用 functionTest2(),则不会显示任何信息。我认为一个 ~ thr querystring 被插入了正文。

有什么区别?

HttpParams 是 immutable :这意味着您不修改它,而是每次 return 一个新对象。

第一个函数可以翻译成

funtionTest(): any{
    let params: HttpParams = new HttpParams();
    params = params.set('one','one');
    params = params.set('two','two');
    params = params.set('three','three');
    ...
}

这就是您的第二个函数不起作用的原因:您没有将 return 值分配给任何东西。

要知道这一点,只需使用 Ctrl + 单击 !

检查 set 函数的签名