Httpparams设置函数调用directlry或cemicolmn之后的区别是什么

时间:2019-04-05 09:03:24

标签: angular angular-httpclient

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

当我将Httpparams与set一起使用时,set函数是在Constructor之后调用的,还是被称为变量名的。

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查询字符串已插入正文。

那有什么区别?

1 个答案:

答案 0 :(得分:0)

HttpParams是不可变的:这意味着您无需修改​​它,而是每次都返回一个新对象。

第一个功能可以翻译为

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

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

要知道这一点,只需使用Ctrl +单击!检查set函数的签名即可。