0

我正在尝试在 EventEmitter 上使用一些简单的运算符(来自 FormModel.valueChanges),但我不知道它是如何完成的。

EventEmitter 类从 Subject 扩展,
export declare class EventEmitter<T> extends Subject<T>
所以我尝试了几件事:

this.patientForm.valueChanges.debounceTime(400) this.patientForm.valueChanges.source.debounceTime(400) this.patientForm.valueChanges.asObservable().debounceTime(400) Observable.create(this.patientForm.valueChanges).debounceTime(400)

在构造函数和 ngOnInit 中尝试过,
源始终未定义,并且类中不存在运算符。

我有这个进口import {Observable} from 'rxjs';可能是什么?

(我想做的是将表单状态保存在 Redux 存储中,但不想在每次击键时都这样做)

4

2 回答 2

2

正如 Günter 所说,默认情况下不包括运算符

要导入Observable类,只需使用以下内容。在这种情况下,您将拥有Observable该类中的所有运算符:

import {Observable} from 'rxjs/Rx';

只有debounceTime运营商,你可以使用这个:

import {Observable} from 'rxjs/Observable';
import 'rxjs/add/operator/debounceTime';

那么debounceTime运算符的正确使用方式是:

this.patientForm.valueChanges.debounceTime(400).subscribe((val) => {
  (...)
});

有关更多详细信息,请参阅这篇文章:

于 2016-04-10T16:34:05.283 回答
0

您需要导入运算符

import 'rxjs/add/operator/debounceTime'

或一次全部

import 'rxjs/Rx';
于 2016-04-10T15:27:32.407 回答