首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RxJS项目中缺少一些angular2操作符吗?该怎么办呢?

RxJS项目中缺少一些angular2操作符吗?该怎么办呢?
EN

Stack Overflow用户
提问于 2016-07-29 12:14:35
回答 1查看 2.3K关注 0票数 3

我正在学习RxJS,我经常尝试许多我感兴趣的运算符和组合。

我在这里学习:http://reactivex.io/documentation/operators.html这里

我有一个Angular2 rc4 CLI项目--所以我使用的是类型记录。RxJS为: 5.0.0-beta.6

问题:

我发现一些算子在可观测的.上不存在。

例如:我想要创建一个可以观察到的对象,它逐一返回对象的键值对:您可以看到实现的样子,就像我使用的从这里开始一样。

代码语言:javascript
复制
// Using Standard JavaScript
var obj = {
  foo: 42,
  bar: 56,
  baz: 78
};

var source = Rx.Observable.pairs(obj);

var subscription = source.subscribe(
  function (x) {
    console.log('Next: %s', x);
  },
  function (err) {
    console.log('Error: %s', err);
  },
  function () {
    console.log('Completed');
  });

// => Next: ['foo', 42]
// => Next: ['bar', 56]
// => Next: ['baz', 78]
// => Completed

但我的编辑是这样的:

Observable.pairs()没有Intelisense。

基于这个职位,我已经完成了这两个导入:

代码语言:javascript
复制
import {Observable} from "rxjs/Rx";
import 'rxjs/Rx'; // import all operators and stuff. it's not good practice i know, but only for this example

并尝试为rxjs安装比角cli提供的更多类型,但不起作用:

代码语言:javascript
复制
typings install --save --ambient npm:rx/ts/rx.all.d.ts // Unable to resolve "npm:rx/ts/rx.all.d.ts" from "rx"
or
typings install rxjs // Unable to find "rxjs" ("npm") in the registry.

并试着使用:

代码语言:javascript
复制
import * as Rx form 'rxjs/Rx'
myObjProperties$ = Rx.Observable.pairs(myObj) // still doesn't work, same error.

另外,我也无法解释为什么把可观察到的对象打印到控制台上不起作用。我得到了一个没用的string-function。没有原型。

代码语言:javascript
复制
console.log('TheAllmightyObservable : ', Observable) // i get:

// TheAllmightyObservable :  function Observable(subscribe) {
        // this._isScalar = false;
        // if (subscribe) {
            // this._subscribe = subscribe;
        // }
    // }

我与许多其他操作符()有相同的问题: ofObjectChanges、ofArrayChanges、ofWithSkeduler、结对--其中有些并不重要--但当我找到一个非常有用的RxJs操作符时,它会让我感到困扰,我无法在angular2 CLI项目中使用它。

问题:

  1. angular2和RxJS有什么关系?(我忽略了我猜.)--是否有单独的angular2-rxjs运算符或RxJS是完全分开的包,并且可以像Jquery一样使用?我的意思是没有有线干扰之间的2-我无法预测。(可能与消化周期有关?!)
  2. 我在哪里可以找到一个好的列表,所有的RxJS运算符在angular2上可用-假设它存在。
  3. 这只是打字的问题吗?如果是这样的话,如何安装它们才能使所有的操作符都可以在文档上使用?如果没有可用的类型,那么临时如何解决"no property/method found on x"问题?

非常感谢您抽出时间来阅读并帮助我找到解决这个问题的方法:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-29 18:12:09

根本问题:您使用的是RxJS的一个版本,但需要查看另一个版本的文档。

RxJS 5(β)与角2:https://github.com/ReactiveX/rxjs RxJS 4(稳定):https://github.com/Reactive-Extensions/RxJS

这些运算符在新版本中不存在,这就是为什么您看不到它们的原因。

对你的问题:

1) RxJS与Angular2没有任何关系,您可以使用没有Angular2的RxJS。RxJS只是一个创建事件流的库,它以正交化的方式操作,用于生成事件。

2)如果您使用的是RxJS 4,那么您可以使用非常好的文档。RxJS 5仍在进行中,但是有一些文档是由构建过程这里生成的。

( 3)在这种情况下,这不是一个打字问题。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38658582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档