Ошибка: аргумент не является функцией.Вы ищете `mapTo ()`?(Карма-жасминовая проблема с картой rxjs - сокращение - метод get) - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь использовать: 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) => { ... }
}

1 Ответ

0 голосов
/ 12 апреля 2019

РЕДАКТИРОВАТЬ :

Исходя из вашего комментария, я не думаю, что проблема в самом методе.Если проблема возникает только в тестах, то кажется, что this.service имеет какое-то другое значение, отличное от фактического сервиса (но не undefined, поскольку ошибка будет " Невозможно прочитать свойство method из неопределенного . ")


Старый неточный ответ

Боюсь, вы не предоставили полный код метода обслуживания.Я чувствую, что может быть условие внутри, и когда вы создаете экземпляр Observable, this.service.method getter возвращает null или undefined.Причина в синхронном характере при создании оператора - метод получения, который возвращает функцию get, вызывается в тот момент, когда вызывается map(this.service.method), то есть немедленно.Только функция, указанная для map в качестве параметра, будет вызываться асинхронно при возникновении наблюдаемых срабатываний.

Если я прав, то единственный способ выполнить эту работу - это способ, который вы уже упоминали.

map((data) => this.service.method(data))
...