当前位置: 首页 > 知识库问答 >
问题:

类型“Observable”上不存在angular2 Observable属性“debouceTime”

苍宝
2023-03-14

我使用“angular2网页包”和“angular2/表格,可见”,但遇到错误,需要帮助。。

有一个自定义表单验证程序--

import {Observable} from 'rxjs/Rx';
import {REACTIVE_FORM_DIRECTIVES,FormControl, FormGroup, Validators} from '@angular/forms';

emailShouldBeUnique(control:FormControl) {
    return new Observable((obs:any)=> {
      control.valueChanges
        .debouceTime(400)
        .distinctUntilChanged()
        .flatMap(term=>return !this.userQuery.emailExist(term))
        .subscribe(res=> {
            if (!res) {obs.next(null)}
            else {obs.next({'emailExist': true}); }; }
        )});}

我可以找到文件"/projection_direction/node_modules/rxjs/操作员/DebounceTime.js"

为什么会有这样的错误-

类型“Observable”上不存在属性“debouceTime”。

共有3个答案

陈霄
2023-03-14

你这里有个打字错误。这是debounceTime,不是debounceTime:)

沙岳
2023-03-14

对于在rxjs 6之后来到这里的所有人:

您现在需要使用一个管道()

是什么

myObservable$
    .debounceTime(500)
    .subscribe(val => {
    // debounced stuff
})

现在需要:

myObservable$
    .pipe(debounceTime(500))
    .subscribe(val => {
    // debounced stuff
})

https://www.learnrxjs.io/operators/filtering/debouncetime.html

傅志文
2023-03-14

确保你已经在主要方面开始了。ts(应用程序启动的位置)

import "rxjs/add/operator/map";
import "rxjs/add/operator/debounceTime";
...

或者一下子

import "rxjs/Rx";

延伸

有一个有效的例子

//our root app component
import {Component, EventEmitter, ChangeDetectorRef} from '@angular/core'
import {Observable} from  "rxjs/Rx";
@Component({
  selector: 'my-app',
  providers: [],
  template: `
    <div>
      <h2>Hello {{name}}</h2>

        <div>debounced message: {{message}}</div>
    </div>
  `, 
  directives: []
})
export class App {

  protected message: string;
  protected emitter = new EventEmitter<string>();
  public obs: Observable<string>;

  constructor() {
    this.name = 'Angular2 (Release Candidate!)'

    this.obs = this.emitter
      .map(x => x)
      .debounceTime(1200)
      ;

    this.obs.subscribe(msg => this.message = msg);
  }

  ngOnInit(){
    this.emitter.emit("hello after debounce");
  }
}

这是工作时,在主要。我们有:

//main entry point
import {bootstrap} from '@angular/platform-browser-dynamic';
import {App} from './app';

import "rxjs/Rx"; 

bootstrap(App, [])
  .catch(err => console.error(err));

在这里检查

 类似资料:
  • 升级到Angular 6.0和Rxjs到6.0后,我收到以下编译错误:

  • 嗨,我正在使用Angular 2 final和router 3.0。我想过滤从 我想做的是: 可以是instanceOf,或,但我只想要。但是我得到一个错误

  • 我得到这个错误: 属性'toPromise'不存在于类型'观察'. any中

  • 在Angular 2使用Http服务的文档页面上,有一个示例。 我克隆了angular2 webpack初学者项目,并自己添加了上述代码。 我导入使用 我假设属性也被导入(起作用)。查看了rxjs.beta-6的更改日志,没有提到任何关于的内容。

  • 我在尝试创建将keyup事件转换为可观察流时遇到问题。 我正在学习Ng书籍第6版。我被困在一个示例中,在您键入时搜索YouTube视频。当搜索返回时,我们将显示视频缩略图结果列表,以及每个视频的描述和链接。 因此,我们使用observable.from事件:https://github.com/NiLinli/ng-book2-angular-6-r68-code-samples/blob/mas

  • 在使用rxjs的角度2中,我试图将promise转换为可观察的。正如许多在线指南所显示的,我在上使用了。其中抛出错误: Observable的导入方式如下: 尝试导入像其他运算符一样会导致错误: 即使我抑制了typescript错误,它仍然会导致错误: 错误: rxjs回购协议中也报告了类似的问题,但也没有解决方案。