无法导入 Observable.fromEvent - RXJS

2024-03-03

我正在尝试从输入事件创建一个可观察对象。我已经尝试了几乎所有方法,但无法导入“fromEvent”。这是我的代码。我正在使用 Angular 6.0.1 和 RXJS 6.1.0

错误 TS2339:类型“typeof Observable”上不存在属性“fromEvent”。

import { Directive, EventEmitter, Input, Output, ElementRef, ViewChild, AfterViewInit } from '@angular/core';
import { NgControl } from '@angular/forms';
import { distinctUntilChanged } from 'rxjs/internal/operators/distinctUntilChanged';
import { debounceTime } from 'rxjs/internal/operators/debounceTime';
import { map } from 'rxjs/internal/operators/map';
import { filter } from 'rxjs/internal/operators/filter';
import { Observable } from 'rxjs/internal/Observable';
//import 'rxjs/internal/observable/fromEvent';
//import 'rxjs/add/observable/fromEvent';

@Directive({
  selector: '[ngModel][debounceTime]'
})
export class InputDebounceDirective implements AfterViewInit {

  @Output()
  public onDebounce = new EventEmitter<any>();

  @Input('debounceTime')
  public debounceTime: number = 1500;

  constructor(private elementRef: ElementRef, private currentModel: NgControl) { }

  ngAfterViewInit() {
    Observable.fromEvent(this.elementRef.nativeElement, 'keyup')
      .pipe(
        debounceTime(this.debounceTime),
        distinctUntilChanged()
      )
      .subscribe(x => {
        this.onDebounce.emit(x);
      });

  }

}

您必须导入fromEvent在RxJS6中如下:

import {fromEvent} from 'rxjs';

阅读迁移指南 https://github.com/ReactiveX/rxjs/blob/master/MIGRATION.md欲了解更多信息,请特别查看导入路径 https://github.com/ReactiveX/rxjs/blob/master/MIGRATION.md#import-paths那里的部分。

使用时fromEvent将其用作函数,如下所示:

fromEvent(this.elementRef.nativeElement, 'keyup')

不是如下所示的静态方法(这在以前的 RxJS 版本中是正确的)

Observable.fromEvent(this.elementRef.nativeElement, 'keyup')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法导入 Observable.fromEvent - RXJS 的相关文章

随机推荐