下面的代码在本地正常工作但在部署后它不起作用。
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不是函数
问题是你有RxJS 6,但你正试图在RxJS 5中使用timer
(RxJS 5现在使用了Observable
类的不推荐的修补)。
由于RxJS 6使用运算符和所谓的“Observable创建方法”的唯一方法是分别从'rxjs'
或'rxjs/operators'
直接导入它们:
import { timer } from 'rxjs';
let somethingTimer = timer(5000);
对于迁移文档,请参阅:
您从rxjs 5升级到6.从5到6有很多变化。
第一个例子是rxjs 5代码,第二个例子是你在6中的代码。
它与导入“计时器”的方式有关。在案例1中,计时器来自“可观察”对象,但第二个是单独的let import {timer}
在我看来,赌注方式是来自'rxjs / observable / timer'的import {timer};
我希望能帮助你