Vue.js RXJS运算符不是函数

Vue.js RXJS运算符不是函数,vue.js,rxjs,observable,Vue.js,Rxjs,Observable,当我尝试在vue中使用rxjs并将vue rx与rxjs一起使用时,我遇到了这个错误 [Vue warn]: Error in created hook: "TypeError: messageObservable.fromEvent(...).map(...).debounceTime is not a function" 在我查看的文档中,我没有看到任何错误的导入,在我的开发环境中构建JS时,我也没有遇到任何构建错误 这些是我的进口货 import { Observable } from

当我尝试在vue中使用rxjs并将vue rx与rxjs一起使用时,我遇到了这个错误

[Vue warn]: Error in created hook: "TypeError: messageObservable.fromEvent(...).map(...).debounceTime is not a function"
在我查看的文档中,我没有看到任何错误的导入,在我的开发环境中构建JS时,我也没有遇到任何构建错误

这些是我的进口货

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/fromEvent';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/debounceTime';
import 'rxjs/add/operator/distinctUntilChanged';
这就是所谓的方法

const messageObservable = Observable;

subscriptions(){
        message$: messageObservable
    },
    created(){
        message$.
        fromEvent(document.querySelector('textarea'), 'input').
        map(event => event.target.value).
        debounceTime(500).
        distinctUntilChanged().
        subscribe({
                next: function(value) {
                    console.log(value);
                }
            });
    },

看来你正在学习的教程已经过时了。此
导入
不再工作。()

最新且稳定的版本是
rxjs6
。这是正确的使用方法:

import { fromEvent, map, debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators'
import { Observable } from 'rxjs';

...

created() {
  message$.
    pipe(
      map(event => event.target.value),
      debounceTime(500),
      distinctUntilChanged()
  ).subscribe(console.log);
}
我猜这就是您希望使用fromEvent的方式

created() {
      message$.
        pipe(
          switchMap(val => fromEvent(document.querySelector('textarea'), 'input'))
          map(event => event.target.value),
          debounceTime(500),
          distinctUntilChanged()
      ).subscribe(console.log);
}

fromEvent是一个静态方法,您如何在message$上使用它?我所看到的教程的运行方式与我所看到的一样\pipe做了什么?我不记得在我第一次学习RxJS时必须这样做。它们只是接收一个作为参数的可观测值,然后返回一个可观测值。这是在rxjs中对可观测数据执行操作的新方法。请参阅此文档。
created() {
      message$.
        pipe(
          switchMap(val => fromEvent(document.querySelector('textarea'), 'input'))
          map(event => event.target.value),
          debounceTime(500),
          distinctUntilChanged()
      ).subscribe(console.log);
}