rxjs里tap操作符的使用单步调试
按照CSDN里的方法,使用JavaScript將China country code手動(dòng)添加到下拉列表里,
經(jīng)過測(cè)試,這種方法已經(jīng)失效了,我手機(jī)一直收不到Github發(fā)送的驗(yàn)證碼:
雖然發(fā)送驗(yàn)證碼的請(qǐng)求已經(jīng)成功發(fā)送給Github后臺(tái),估計(jì)后臺(tái)做了基于國(guó)家的限制:
測(cè)試代碼:
const a = of([1, 2, 3]);const mapFn = (data: number[]) => {for( let i = 0; i < data.length; i++){data[i] = data[i] + 1;}console.log('data: ' + data);return data;};const b = a.pipe(map(mapFn));const myGet = (data) => console.log('got: ' + data);const tt = tap(myGet);a.pipe(tt).subscribe();nextOrObserver就是myGet:
然后執(zhí)行a.pipe(tt). pipeFromArray:
this就是調(diào)用pipe的source Observable,作為輸入?yún)?shù)source,傳入tap返回的tapOperationFunction里:
return source.lift(new DoOperator(nextOrObserver, error, complete)); 返回一個(gè)新的Observable:
DoOperator的實(shí)現(xiàn)比MapOperator更簡(jiǎn)單,因?yàn)椴缓琾roject,只是簡(jiǎn)單的執(zhí)行app 傳入tap的fn:
最后基于pipe返回的Observable調(diào)用subscribe:
調(diào)用DoOperator的call方法:注意此時(shí)的source參數(shù),包含的是調(diào)用pipe之前的原始Observable:
原始Observable調(diào)用subscriber的next方法,后者會(huì)調(diào)用_tapNext:
因?yàn)閟ubscriber變量的類型是Tapsubscriber:
更多Jerry的原創(chuàng)文章,盡在:“汪子熙”:
總結(jié)
以上是生活随笔為你收集整理的rxjs里tap操作符的使用单步调试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 红警ol什么时候跨服(红警死了十年)
- 下一篇: ngrx中的memoized函数