Rxjs of() 和 of({}) 的区别
生活随笔
收集整理的這篇文章主要介紹了
Rxjs of() 和 of({}) 的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我最近在做 SAP Spartacus 電商云的一個單元測試:
起初我 return 的是 of(),后來發現這樣寫的話,下圖 map 操作符內的匿名函數不會觸發。
我們通過單步調試即可找到原因:
首先從當前的 Observable 對象里提取出 map 操作符。每一個通過 pipe 加工過的 Observable 對象,都有一個 Operator 引用。
然后,使用這個 Operator 調用 Observable 對象。
執行第28行邏輯:
這里的 this 仍然指向原始的 Observable 對象,而 array 即是輸入參數,也就是傳入 of 里的空對象{}.
如果改成 of(), 那么第2行的 array 為空,因此根本不會進入 for 循環,所以 map 操作符里的匿名函數,也就沒有機會得到執行了:
每個 map Operator 都維護了一個 project 屬性,指向 map 調用時傳入的匿名函數:
現在就執行到我的匿名函數了:
更多Jerry的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的Rxjs of() 和 of({}) 的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2019双十一剁手表情包大全 双十一剁手
- 下一篇: QQ邮箱忘记独立密码怎么办?忘记独立密码