失败:参数不是函数。你在寻找`mapTo()`吗? (用rxjs映射的Karma-jasmine问题 - 简写 - get方法)

问题描述 投票:0回答:1

我正在尝试使用:map(this.service.method) 而不是:map((data) => this.service.method(data))

但是卡玛告诉我: Failed: argument is not a function. Are you looking for `mapTo()`?mapTo不是我想在那里使用。

我正在尝试使用的服务方法:

get method() {
  return (data) => { ... }
}
angular rxjs karma-jasmine
1个回答
0
投票

编辑:

根据您的评论,我不认为问题出在方法本身。如果问题仅在测试中提出,那么this.service似乎有一些其他值而不是实际服务(但不是undefined,因为错误将是“无法读取未定义的属性method。”)


Old imprecise answer

我担心你没有提供服务方法的完整代码。我觉得里面可能有一个条件,当你实例化Observable时,this.service.method getter返回nullundefined。原因是创建运算符时的同步性 - 在调用map(this.service.method)时返回函数get的getter - 即刻。当observable触发时,只有作为参数提供给map的函数才会被异步调用。

如果我是对的,那么你能够做到这一点的唯一方法就是你已经提到过的方式。

map((data) => this.service.method(data))
© www.soinside.com 2019 - 2024. All rights reserved.