我正在尝试使用以下代码创建事件服务
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { Subject } from 'rxjs/Subject';
export interface IPosition {
x:number
y:number
}
export interface IPositionEvent {
id: string
position: IPosition
}
@Injectable()
export class ModelEventsService {
position$:Subject<IPositionEvent>;
constructor() {
this.position$ = new Subject().debounce(500);
}
}
但是,typescript会生成以下错误
/src/model-events.service.ts中的错误(20,49):类型'500'的参数 不能分配给'(value:{})=&gt;类型的参数 SubscribableOrPromise”。)
我已经google了,虽然有一些解决方案,但大多数似乎都适用于http等等,我只是无法理解究竟问题是什么。
显然我需要投射某些东西,但我找不到合适的语法
如果我删除.debounce(500)
,则服务按预期工作并发出事件
感谢任何想法,想法或帮助;)
答案 0 :(得分:2)
问题是当您看到应该使用debounce
operator时,您正在使用debounceTime
operator。
debounce
采用选择器函数 - 错误中提到 - 而debounceTime
采用超时持续时间(以毫秒为单位)。