Rx.Observable.prototype.skip 未定义

Rx.Observable.prototype.skip is undefined

我有 Angular 2 个应用程序,代码如下:

  nextPage() {
    this.currentPage += 1;
    this.files = this._rawFiles
      .skip((this.currentPage - 1) * 100)
      .take(100);
  }

它returns出现以下错误:

ORIGINAL EXCEPTION: TypeError: this._rawFiles.skip is not a function

this._rawFiles 是由 Angular 的 Http 服务生成的,所以它应该使用 RxJS。这是打印到控制台时的样子:

好像是一个Observable,但是只有几个方法。为什么 Rx.Observable.prototype.skip(count) 不在那里?

package.json 的相关部分如下所示:

  "dependencies": {
    "@angular2-material/button": "^2.0.0-alpha.1",
    "@angular2-material/card": "^2.0.0-alpha.1",
    "@angular2-material/checkbox": "^2.0.0-alpha.1",
    "@angular2-material/core": "^2.0.0-alpha.1",
    "@angular2-material/progress-circle": "^2.0.0-alpha.1",
    "@angular2-material/radio": "^2.0.0-alpha.1",
    "@angular2-material/sidenav": "^2.0.0-alpha.1",
    "@angular2-material/toolbar": "^2.0.0-alpha.1",
    "angular2": "2.0.0-beta.12",
    "core-js": "^2.1.5",
    "rxjs": "5.0.0-beta.2",
    "zone.js": "0.6.6"
  },

这只是一个普通的 RxJS,不是某种轻量级版本。它不应该包括所有方法吗?

添加

import 'rxjs/add/operator/skip';

您也可以使用

一次性全部导入
import 'rxjs/Rx';

但这违背了模块化的目的,并且不必要地增加了代码输出大小。

如果要包含所有方法,请使用:

import 'rxjs/Rx';

如果您只想包含 skip() 方法,请使用:

import 'rxjs/add/operator/skip';

Rx 被设计成模块化的,所以并不是所有的代码都加载到内存中。