美文网首页
rxjs的pipe和map配合使用的单步调试

rxjs的pipe和map配合使用的单步调试

作者: 华山令狐冲 | 来源:发表于2021-02-07 09:11 被阅读0次

测试代码:

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调用subscribe方法,里面会调用subscriber的next方法,输入为[1,2,3]:

subscriber的next和_next区别就是前者多了一个isStopped的判断:

注意:因为现在我们调用Observable.subscribe方法,传入的不是一般的subscriber,而是Mapsubscriber,后者是app callback一个包含了map逻辑及project的封装体:

所以,在Mapsubscriber内部,_next的实现就是将传入的value用project去调用:


map project执行的result还得继续往下执行:

这里还有index参数我没有使用:

调用this.destination.next将执行链继续下去:

第四层嵌套结构里就是app callback:

app callback在这里被调用:

更多Jerry的原创文章,尽在:"汪子熙":


相关文章

网友评论

      本文标题:rxjs的pipe和map配合使用的单步调试

      本文链接:https://www.haomeiwen.com/subject/mpogvktx.html