按照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的原创文章,尽在:“汪子熙”: