错误TypeError:(中间值).share不是一个函数

时间:2018-12-13 17:43:50

标签: angular rxjs

您好,我一直在寻找有关此错误的答案。我似乎无法弄清楚,我读过很多类似但不相同的文章。我刚刚从angular 4/ rxjs "5.0.0-beta.12"更新为angular 7 /rxjs 6.3.3,遇到了这个错误

  

错误TypeError :(中间值).share不是一个函数       在新的ProgressBarService(progressbar.service.ts:21)       在_createClass(core.js:19827)       在_createProviderInstance(core.js:19801)       在resolveNgModuleDep(core.js:19765)       在_createClass(core.js:19837)       在 createProviderInstance(core.js:19801)       在resolveNgModuleDep(core.js:19765)       在NgModuleRef .push ../ node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get   (core.js:20473)       在resolveDep(core.js:20844)       在createClass(core.js:20720)

我发现添加了import 'rxjs/add/operator/share';

并添加以下代码:

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/debounceTime';  // added method
import 'rxjs/add/operator/map';           // added method

,但似乎都不起作用。有没有人有Sugest?

2 个答案:

答案 0 :(得分:2)

RxJS v6具有新的import statements(请参阅链接的第2节)。

import { Observable } from 'rxjs';
import { map, debounceTime, share } from 'rxjs/operators';  // added method

答案 1 :(得分:0)

rxjs 6上的导入样式不同。此外,OP的错误来自share函数。

您的导入应该是(包括share函数)

import { Observable } from 'rxjs';
import { map, share, debounceTime } from 'rxjs/operators';