Observable.fromEvent - RXJS - PullRequest
       6

Observable.fromEvent - RXJS

0 голосов
/ 15 мая 2018

Я пытаюсь создать Observable из входного события. Я уже почти все перепробовал и не могу импортировать "fromEvent". Это мой код Я использую угловой 6.0.1 и RXJS 6.1.0

ошибка TS2339: свойство 'fromEvent' не существует в типе 'typeof Observable'.

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);
      });

  }

}

1 Ответ

0 голосов
/ 15 мая 2018

Вы должны импортировать fromEvent в RxJS6 следующим образом:

import {fromEvent} from 'rxjs';

Прочтите руководство по миграции для получения дополнительной информации, в частности, ознакомьтесь с путями импорта *Там есть раздел 1008 *.

При использовании fromEvent используйте его как функцию следующим образом:

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

Не как статический метод следующим образом (это было правильно в предыдущих версиях RxJS)

Observable.fromEvent(this.elementRef.nativeElement, 'keyup')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...