首页 > 解决方案 > “typeof Observable”类型上不存在属性“interval”。虽然是进口的

问题描述

“typeof Observable”类型上不存在属性“interval”。即使它是进口的,我也不知道为什么它不起作用。我看过一些关于这个涉及角度 6 的帖子,但这是角度 11,所以我希望有人能帮我解决这个问题。

import { Component, OnInit } from '@angular/core';
import { TokenService } from '../../authentication/services/token.service';
import { Router } from '@angular/router';
import { HttpErrorResponse } from '@angular/common/http';
import { AdminService } from '../../authentication/services/admin.service';
import { CrudService } from '../services/crud.service';
import { Observable } from 'rxjs';
import { switchMap, startWith } from 'rxjs/operators';
@Component({
  selector: 'app-admin-dashboard',
  templateUrl: './admin-dashboard.component.html',
  styleUrls: ['./admin-dashboard.component.css'],
})
export class AdminDashboardComponent {
  constructor(
    private _token: TokenService,
    private _router: Router,
    private _admin: AdminService,
    private _crud: CrudService
  ) {}

  adminId: string;
  adminName: string;
  adminEmail: string;
  userCount$: Observable<any>;
  userCount: string;

  ngOnInit(): void {
    this._token.verifyToken().subscribe(
      (res) => {
        this.adminId = res.admin._id;
        localStorage.setItem('adminid', this.adminId);
        this._admin.getAdminById(this.adminId).subscribe((res) => {
          this.adminName = res.admin.name;
          this.adminEmail = res.admin.email;
          // this._crud.getUserCount().subscribe((count) => {
          //   this.userCount$ = count.count;
          // });
          this.userCount$ = Observable.interval(1000)
            .startsWith(0)
            .switchMap(() => {
              this._crud.getUserCount().subscribe((count) => {
                this.userCount = count.count;
              });
            });
        });
      },
      (err) => {
        if (err instanceof HttpErrorResponse) {
          if (err.status === 400) {
            this._router.navigate(['/login']);
          }
        }
      }
    );
  }
}

标签: javascriptangularrxjsrxjs6rxjs-observables

解决方案


尝试这个:

import { interval } from 'rxjs';

....
interval(1000).startWith.... // Change Observable.interval to interval and import it from rxjs.

推荐阅读