Angular 5升级RxJS到5.5.3报错:EmptyError: no elements in sequence

Angular 5.0.5升级RxJS到5.5.3报错:

ERROR Error: Uncaught (in promise): EmptyError: no elements in sequence
EmptyError: no elements in sequence
    at new EmptyError (EmptyError.js:28)
    at FirstSubscriber._complete (first.js:154)
    at FirstSubscriber.Subscriber.complete (Subscriber.js:122)
    at MergeMapSubscriber._complete (mergeMap.js:150)
    at MergeMapSubscriber.Subscriber.complete (Subscriber.js:122)
    at MapSubscriber.Subscriber._complete (Subscriber.js:140)
    at MapSubscriber.Subscriber.complete (Subscriber.js:122)
    at EmptyObservable._subscribe (EmptyObservable.js:83)
    at EmptyObservable.Observable._trySubscribe (Observable.js:172)
    at EmptyObservable.Observable.subscribe (Observable.js:160)
    at new EmptyError (EmptyError.js:28)
    at FirstSubscriber._complete (first.js:154)
    at FirstSubscriber.Subscriber.complete (Subscriber.js:122)
    at MergeMapSubscriber._complete (mergeMap.js:150)
    at MergeMapSubscriber.Subscriber.complete (Subscriber.js:122)
    at MapSubscriber.Subscriber._complete (Subscriber.js:140)
    at MapSubscriber.Subscriber.complete (Subscriber.js:122)
    at EmptyObservable._subscribe (EmptyObservable.js:83)
    at EmptyObservable.Observable._trySubscribe (Observable.js:172)
    at EmptyObservable.Observable.subscribe (Observable.js:160)
    at resolvePromise (zone.js:824)

这应该是RxJS升级导致的,参考issue

方法一

在所有的route里加上pathMath:"full",如

const routes: Routes = [
  { path: "", component: IndexComponent },
  { path: "home", component: HomeComponent },
  { path: "about", component: AboutComponent },
  ...
];

改为

const routes: Routes = [
  { pathMatch: 'full', path: "", component: IndexComponent },
  { pathMatch: 'full', path: "home", component: HomeComponent },
  { pathMatch: 'full', path: "about", component: AboutComponent },
  ...
];

方法二

RxJS降为版本5.5.2。

注意:降版本时一定要把之前的卸载掉。

版权声明:著作权归作者所有。

相关推荐

Angular 5:HttpClient的基本用法

Angular 4.3引入了新的用于http请求的接口HttpClient。它旨在替换之前版本的接口Http。有以下新特性:对响应的body做类型检查默认返回的是JSON对象,不再需要使用json()显式解析返回的数据支持拦截器支持进度事件请求后验证和基于刷新的测试框架安装HttpClientModuleHttpClient属于@angular/common/http包的模块HttpCl

Mac升级Ruby到最新版本

升级Ruby可以使用rvm和brew:rvm安装rvmcurl -sSL https://get.rvm.io | bash -s stable 列出ruby版本rvm list known 安装最新版本rvm install ruby-<latest-version> 查看ruby版本

[译]Angular 5:升级和新功能的总结

代号为pentagonal-donut的Angular 5刚刚发布,它带来了一些新功能以及一些内部变化,这些会让Angular应用变得更小,执行变得更快。 在这篇文章中,我们将简要介绍一些最重要的变化以及升级指南。 有关更多详细信息,请参阅公告博客帖子,有关所有更改的详细信息,请参阅官方更新日志。性能这是Angular 5包含的一些改变,它会让你的应用变得更

升级angular cli到最新版本

升级angular cli我们可能首先想到的是npm updatenpm update angular-cli -g 但执行完后,使用ng v查看angular cli 的版本,版本仍然为旧的。下面方法可以升级angular cli到最新版本:全局安装升级angular cli到最新的版本需要先卸载

Angular4使用Rxjs5共享Http请求返回的结果数据

在使用Angular开发的单页面应用里,有时需要处理这种场景:使用http请求某个数据,数据请求成功后需要把数据更新到多个组件里。也就是说,有多个observer(观察者)对http请求数据返回的Observable订阅。getDta() {     return this.http.get('/dataUrl').map(res&nbs