當(dāng)前位置:
首頁 >
rxjs的pipe和map配合使用的单步调试
發(fā)布時(shí)間:2023/12/19
31
豆豆
生活随笔
收集整理的這篇文章主要介紹了
rxjs的pipe和map配合使用的单步调试
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
測試代碼:
const a = of([1, 2, 3]);const b = map((data: number[]) => {for( let i = 0; i < data.length; i++){data[i] = data[i] + 1;}console.log('data: ' + data);return data;} );const c = a.pipe(b);c.subscribe((data) => console.log('Fairy:' + data));of返回的原始Observable調(diào)用subscribe方法,里面會調(diào)用subscriber的next方法,輸入為[1,2,3]:
subscriber的next和_next區(qū)別就是前者多了一個(gè)isStopped的判斷:
注意:因?yàn)楝F(xiàn)在我們調(diào)用Observable.subscribe方法,傳入的不是一般的subscriber,而是Mapsubscriber,后者是app callback一個(gè)包含了map邏輯及project的封裝體:
所以,在Mapsubscriber內(nèi)部,_next的實(shí)現(xiàn)就是將傳入的value用project去調(diào)用:
map project執(zhí)行的result還得繼續(xù)往下執(zhí)行:
這里還有index參數(shù)我沒有使用:
調(diào)用this.destination.next將執(zhí)行鏈繼續(xù)下去:
第四層嵌套結(jié)構(gòu)里就是app callback:
app callback在這里被調(diào)用:
更多Jerry的原創(chuàng)文章,盡在:“汪子熙”:
總結(jié)
以上是生活随笔為你收集整理的rxjs的pipe和map配合使用的单步调试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rxjs 里的map operator
- 下一篇: QQ影音投屏在哪里 投屏具体操作分享