如何测试“管道”操作的结果是否为“未定义”。 TypeError:无法读取未定义的属性“订阅”

时间:2019-10-17 07:15:27

标签: angular observable

我使用rxjs运算符“ pipe”在可观察的位置上进行了一些操作。该应用程序可以运行,但是在运行测试时出现此错误:“ TypeError:无法读取未定义的属性'subscribe'”

我还尝试使用过滤器运算符跳过未定义的observable值。 当我放置“ pipe”运算符的操作以测试其返回值时,我还尝试创建一个函数。之后,我订阅了它,但是我遇到了相同的错误

this.repertory.family
                  .pipe(
                    map(d => d.map(dr => dr.name).reduce((prev, curr) => prev.concat(curr), [])),
                  )
                  .subscribe(d=> (this.person= d.find(character=> (character.id= this.zoning.ref))))

我想测试“管道”操作符操作的结果是否为“未定义”。 谢谢!

1 个答案:

答案 0 :(得分:-1)

添加过滤器

this.repertory.family.pipe(
  map(d => d.map(dr => dr.name).reduce((prev, curr) => prev.concat(curr), [])),
  filter(Boolean),
).subscribe(
  d=> (this.person= d.find(character=> (character.id= this.zoning.ref)))
)