Angular 角6与算子
我有一个简单的ts组件,我有一个问题。我将项目更新为angular 6,但rxjs运算符出现错误。当我尝试从组件运行此代码时:Angular 角6与算子,angular,Angular,我有一个简单的ts组件,我有一个问题。我将项目更新为angular 6,但rxjs运算符出现错误。当我尝试从组件运行此代码时: import { Component } from '@angular/core'; import { Observable, resolve, pipe } from 'rxjs'; import { map, take } from 'rxjs/operators'; import { interval } from 'rxjs/observable/interva
import { Component } from '@angular/core';
import { Observable, resolve, pipe } from 'rxjs';
import { map, take } from 'rxjs/operators';
import { interval } from 'rxjs/observable/interval';
...
observableData: number;
subscription: Object = null;
constructor() {
this.subscribeObservable();
}
getObservable() {
return Observable
.interval(1000)
.take(10)
.map((v) => v * v);
}
subscribeObservable() {
this.subscription = this.getObservable()
.subscribe( v => this.observableData = v);
}
ngOnDestroy() {
if (this.subscription) {
this.subscription.unsubscribe();
}
}
我得到了流动误差:
src/app/app.component.ts2,22中的错误:错误TS2305:Module'C:/Workspace/bitbucket/async pipe with promissions and observable/node_modules/rxjs/index'没有导出的成员'resolve'。
src/app/app.component.ts25,10:错误TS2339:类型“typeof Observable”上不存在属性“interval”。
src/app/app.component.ts37,25:错误TS2339:类型“Object”上不存在属性“unsubscribe”
有人知道怎么修吗
编辑:
当我尝试时:
import { Observable, resolve, pipe, interval, map, take } from 'rxjs';
我发现错误:
src/app/app.component.ts2,22中的错误:错误TS2305:Module'C:/Workspace/bitbucket/async pipe with promissions and observable/node_modules/rxjs/index'没有导出的成员'resolve'。
src/app/app.component.ts2,47:error TS2305:Module'C:/Workspace/bitbucket/async pipe with promises and observable/node_modules/rxjs/index'没有导出的成员“map”。
src/app/app.component.ts2,52:error TS2305:Module'C:/Workspace/bitbucket/async pipe with promissions and observable/node_modules/rxjs/index'没有导出的成员'take'。
src/app/app.component.ts25,10:错误TS2339:类型“typeof Observable”上不存在属性“interval”。
src/app/app.component.ts37,25:错误TS2339:类型“Object”上不存在属性“unsubscribe”
My package.json:
{
"name": "async-pipe-with-promises-and-observable",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "^6.0.3",
"@angular/common": "^6.0.3",
"@angular/compiler": "^6.0.3",
"@angular/core": "^6.0.3",
"@angular/forms": "^6.0.3",
"@angular/http": "^6.0.3",
"@angular/platform-browser": "^6.0.3",
"@angular/platform-browser-dynamic": "^6.0.3",
"@angular/router": "^6.0.3",
"bootstrap": "^4.1.1",
"core-js": "^2.5.4",
"rxjs": "^6.1.0",
"rxjs-compat": "6.1.0",
"zone.js": "^0.8.26"
},
"devDependencies": {
"@angular/compiler-cli": "^6.0.3",
"@angular-devkit/build-angular": "~0.6.5",
"typescript": "~2.7.2",
"@angular/cli": "~6.0.5",
"@angular/language-service": "^6.0.3",
"@types/jasmine": "~2.8.6",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~8.9.4",
"codelyzer": "~4.2.1",
"jasmine-core": "~2.99.1",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~1.7.1",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~1.4.2",
"karma-jasmine": "~1.1.1",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.3.0",
"ts-node": "~5.0.1",
"tslint": "~5.9.1"
}
}
运营商现在都应处于以下状态:
from "rxjs"
由于angular 6使用rxjs 6运算符现在应全部处于以下状态:
from "rxjs"
由于angular 6使用rxjs 6,请尝试以下操作:
import { Component } from '@angular/core';
import { Observable, Subscription, interval, pipe } from 'rxjs';
import { map, take } from 'rxjs/operators';
替换订阅:Object=null;按订阅:订阅=null
替换
return Observable
.interval(1000)
.take(10)
.map((v) => v * v);
借
试试这个:
import { Component } from '@angular/core';
import { Observable, Subscription, interval, pipe } from 'rxjs';
import { map, take } from 'rxjs/operators';
替换订阅:Object=null;按订阅:订阅=null
替换
return Observable
.interval(1000)
.take(10)
.map((v) => v * v);
借
我将尝试删除您的node_模块并重新安装。这可能是因为它试图使用您的旧模块,这很遗憾,但什么也没有发生。我会尝试删除您的节点模块并重新安装。这可能是因为它试图使用您的旧模块。这很遗憾,但什么也没有发生。我得到:src/app/app.component.ts24,10:ERROR TS2339:type“typeof Observable”上不存在属性“interval”。是的,因为您的行Observable.interval是错误的。替换为返回间隔1000.10,mapv=>v*v;我在src/app/app.component.ts24中得到:ERROR,10:ERROR TS2339:属性“interval”在类型“typeof Observable”上不存在。是的,因为您的行Observable.interval是错误的。替换为返回间隔1000.10,mapv=>v*v;