zl程序教程

您现在的位置是:首页 >  工具

当前栏目

如何在Chrome调试器里检查嵌套Observable对象

Chrome对象 如何 检查 嵌套 调试器 Observable
2023-09-14 09:04:03 时间

一个例子:

举个例子,看如下这个嵌套的Observable对象:

items$: Observable<Observable<Product>[]> = this.componentData$.pipe(
    map((data) => data.productCodes.trim().split(' ')),
    map((codes) =>
      codes.map((code) => this.productService.get(code, this.PRODUCT_SCOPE))
    )
  );

this.componentData$是Observable,调用pipe,在pipe里的map操作,内部执行了一个map操作,因此最后返回的Observable对象是嵌套的。

那么我们在Chrome调试器里看到一个Observable对象,可以知道它是通过哪些操作得来的呢?

可以。

Observable的operator属性,存放的是通过source Observable对象,施加了哪一个操作后得到的当前Observable对象。上述截图的operator->project, 对应了下图高亮的函数:
再看source的operator的project属性:

对应的是下图高亮的函数:

再沿着source往上追溯,这次就不是project,而是predicate了,暗示函数返回的类型是boolean:

上图的operator对应的操作如下:

再往上,这个Observable没有operator,说明它没有被pipe处理过: