为什么在角度可观察的计时器中部署后本地无法工作?

时间:2019-03-08 06:26:49

标签: angular rxjs angular6

下面的代码在本地可以正常工作,但是在部署后无法正常工作。

import { Observable } from "rxjs/Observable";
let somethingTimer = Observable.timer(5000);
// rest of other code.

将上面的代码更改为下面的代码后,可以在本地和生产服务器上正常工作。

import { timer } from 'rxjs/observable/timer';
let somethingTimer = timer(5000);
// rest of other code.

为什么会发生任何解释。

配置:

Angular CLI: 6.0.3
Node: 8.11.2
OS: win32 x64
Angular:
...

Package                      Version
--------------------------------------
@angular-devkit/architect    0.6.3
@angular-devkit/core         0.6.3
@angular-devkit/schematics   0.6.3
@schematics/angular          0.6.3
@schematics/update           0.6.3
rxjs                         6.2.0
typescript                   2.7.2

控制台日志中的错误

  

TypeError:a.timer不是函数

3 个答案:

答案 0 :(得分:1)

您从rxjs 5升级到了6。从5升级到了6。

第一个示例是rxjs 5代码,第二个示例是在6中的实现方式。

答案 1 :(得分:1)

问题是您拥有RxJS 6,但是您尝试像在RxJS 5中一样使用timer(现在已弃用Observable类的修补程序)。

自RxJS 6起,使用运算符和所谓的“可观察的创建方法”的唯一方法是分别直接从'rxjs''rxjs/operators'导入它们:

import { timer } from 'rxjs';

let somethingTimer = timer(5000);

有关迁移文档,请参见:

答案 2 :(得分:0)

它与“计时器”的导入方式有关。 在第一种情况下,计时器来自“可观察”对象,但第二个是单独的让 导入{计时器}

我认为打赌方式是从'rxjs / observable / timer'导入{timer};

希望对您有帮助