rxjs里tap操作符的使用单步调试
按照CSDN里的方法,使用JavaScript將China country code手動添加到下拉列表里,
經過測試,這種方法已經失效了,我手機一直收不到Github發送的驗證碼:
雖然發送驗證碼的請求已經成功發送給Github后臺,估計后臺做了基于國家的限制:
測試代碼:
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:
然后執行a.pipe(tt). pipeFromArray:
this就是調用pipe的source Observable,作為輸入參數source,傳入tap返回的tapOperationFunction里:
return source.lift(new DoOperator(nextOrObserver, error, complete)); 返回一個新的Observable:
DoOperator的實現比MapOperator更簡單,因為不含project,只是簡單的執行app 傳入tap的fn:
最后基于pipe返回的Observable調用subscribe:
調用DoOperator的call方法:注意此時的source參數,包含的是調用pipe之前的原始Observable:
原始Observable調用subscriber的next方法,后者會調用_tapNext:
因為subscriber變量的類型是Tapsubscriber:
更多Jerry的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的rxjs里tap操作符的使用单步调试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 红警ol什么时候跨服(红警死了十年)
- 下一篇: ngrx中的memoized函数