Rxjs 中的tap和map區別以及在append出現的問題

序言:

本週在前臺編寫的時候遇到了不少問題,其中理解老師優化的不少代碼的過程當中有不少的收穫。數組

1.首先是在獲取和存儲緩存:

目的:將以前出現過的學生緩存到一個對象數組中。獲取方式:班級的id緩存

個人想法:直接將全部出現過的學生放到一個對象數組中,獲取:直接從對象數組中循環獲取班級id知足要求的。

老師作法:網絡

直接將班級id做爲參數傳入,返回存儲時班級id等於該id的對象數組。

record:image.png

首先看註釋:app

用類型T的一組屬性K構造一個類型,根據註釋能夠猜個大概,可是對於代碼仍是不太瞭解

2.關於tap和map的理解:

因爲以前更可能是使用map,忽然使用tap便不知道它的做用了。查閱了不少博客,仍是沒有一個很好的理解。最後本身去舉了個簡單的例子測試了一下:

tap:image.pngimage.png

上面是兩個tap的小測試:第一個直接打印了data+1,很顯然會是2, 第二個若是直接用data = data + 1 進行測試,在訂閱打印後發現輸出值依然爲1。

map:image.png

經過map改變的data,在打印後發現它的值變動爲2。函數

本身進行測試以後再從新翻看博客:

原來tap執行完以後反作用並不會影響你訂閱的值,正如其名:監聽。它會返回與源Observable相同的Observable。測試

map是管道運算符。映射將給定函數應用於源Observable發出的每一個元素,並將結果值做爲Observable發出。優化

HttpParams.append遇到的問題:

問題再現:

image.png
在初始化的時候沒有將name添加到params中,在下面單獨添加添加失敗,以下圖:
image.png
只有兩項數據:size和page,並無添加成功name。
那麼將name也在初始化時添加呢:
image.pnggoogle

image.png

成功添加!

google搜索後:image.png地址:https://stackoverflow.com/que...

這部分紅功解決了個人疑問,可是對於下面的部分不太理解:

image.png

本文保留全部權利,版權歸河北工業大學夢雲智軟件開發團隊全部。未經團隊及做者事先書面贊成,您不得以任何方式將本文內容進行商業性使用或經過信息網絡傳播本文內容。本文做者:郝澤龍spa

相關文章
相關標籤/搜索