下面的代码在本地可以正常工作,但是在部署后无法正常工作。
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不是函数
答案 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};
希望对您有帮助