此导入列在黑名单中,而是导入一个子模块

时间:2018-09-16 03:10:42

标签: angular angular-observable

查询1

以下是我的应用程序组件的导入部分,具有可观察到的导入,该片段使代码正常工作。

int t = 3;
System.out.print("This is what t is equals to " + t); //t will be 3

但是,IDE将[“ rxjs / Rx”]显示为已列入黑名单的用法,但仍可以使用浏览器控制台上的Observable.interval(1000)为我提供所需的输出。为什么IDE将此列为黑名单用法:(而有效!

查询2

我尝试的初始代码如下,但它在控制台上引发错误,并且没有向控制台提供所需的间隔输出。

import {Component, OnDestroy, OnInit} from '@angular/core';
import { Observable } from 'rxjs/Rx';
import 'rxjs/add/observable/interval';
import 'rxjs/add/operator/take';

控制台错误输出

  

rxjs_Observable__WEBPACK_IMPORTED_MODULE_1 __。Observable.interval不是一个函数       在AppComponent.push ../ src / app / app.component.ts.AppComponent.ngOnInit(app.component.ts:15)       在checkAndUpdateDirectiveInline(core.js:9250)       在checkAndUpdateNodeInline(core.js:10514)       在checkAndUpdateNode(core.js:10476)       在debugCheckAndUpdateNode(core.js:11109)       在debugCheckDirectivesFn(core.js:11069)       在Object.eval [作为updateDirectives](AppComponent_Host.ngfactory.js?[sm]:1)       在Object.debugUpdateDirectives [作为updateDirectives](core.js:11061)       在checkAndUpdateView(core.js:10458)       在callWithDebugContext(core.js:11351)

哪种方法正确,请提出建议。

1 个答案:

答案 0 :(得分:1)

  • 首先,Never import from rxjs/Rx, because it'll include every single operator, static method, scheduler, and utility that you probably don't need.如果您不关心捆绑包的大小,则可以使用rxjs/Rx进行导入。
  • 您确定只导入一次Observable。检查是否两次从主模块和子模块导入。您的项目可能正在访问global version中的某些Observable,这与intervals()被添加到'rxjs/add/observable/interval'方法中的可观察性不同。如果您不小心将两个rxjs版本与应用程序捆绑在一起,则可能会发生这种情况,其中一个版本已在全球范围内发布,而另一个版本正在此处导入。

  • 如果仍然无法正常运行,您可以尝试在模块的静态上下文中导入interval吗?使用import { interval } from 'rxjs/add/observable/interval';