无法使用“of”类“rxjs”

时间:2018-06-15 06:45:46

标签: angular rxjs

我写了ValueService类,如下所示。

import { Injectable } from '@angular/core';

import { of } from 'rxjs';
import { delay } from 'rxjs/operators';


@Injectable()
export class ValueService {
    protected value = 'real value';
    getValue() {
        return this.value;
    }

    getObservableValue() {
        return of('Observable value');
    }

    getPromiseValue() {
        return Promise.resolve('Promise value');
    }

    getObservableDelayValue() {
        //return of('Observable delay value').pipe(delay(100));
        return of('Observable delay value').pipe(delay(1000));
    }
}

但是,低于错误而无法继续前进。

src / app / demo / demo.ts(3,10)中的错误:错误TS2305:模块'“H:/ Ashok / JasmineLearnings / JasminePractice / node_modules / rxjs / Rx”'没有导出成员'的”。

在谷歌搜索,但没有运气。任何人都可以帮我解决这个问题,因为我没有得到同事们的大力支持。

4 个答案:

答案 0 :(得分:0)

怎么样

import { of } from 'rxjs/observable/of';

错误很明显。 'of'中没有导出'rxjs'运算符。

答案 1 :(得分:0)

尝试导入:

import { of } from 'rxjs/observable/of';

答案 2 :(得分:0)

首先,如果您是第一次使用rxjs,那么我建议检查package.json rxjs依赖项。

"dependencies": {
    "@angular/animations": "^5.2.8",
    "@angular/cdk": "^5.2.5",
    "@angular/common": "^5.2.8",
    "@angular/compiler": "^5.2.8",
    "@angular/core": "^5.2.8",
    "@angular/forms": "^5.2.8",
    "@angular/http": "^5.2.8",
    "@angular/platform-browser": "^5.2.8",
    "@angular/platform-browser-dynamic": "^5.2.8",
    "@angular/router": "^5.2.8",
    "@ng-bootstrap/ng-bootstrap": "^1.0.1",
    "rxjs": "^5.5.6",
    "zone.js": "^0.8.19"
},

然后执行npm cache cleannpm install

答案 3 :(得分:0)

你必须做几个步骤:
1.你可以使用

import { of } from 'rxjs/observable/of';

的地方
import { of } from 'rxjs';
  1. a。)转到工作区,然后转到项目文件夹然后访问Node_modules并检查rxjs是否存在(如果存在),然后检查是否存在可观察文件。如果所有文件都存在,则删除整个rxjs文件夹
  2. 例如:D drive \ Sublime_Workspace \ MyAngularPoject \ node_modules \ rxjs

    b。)在项目位置打开命令提示符并键入以下代码: npm install rxjs并点击输入
    c。)运行项目,然后检查问题是否已解决 d。)您也可以在同一命令提示符下安装rxjs compat并输入以下代码

    npm install rxjs-compat
    

    按Enter键并重复步骤d