angular2 CLI 项目中缺少一些 RxJS 运算符?该怎么办?
some RxJS operators are missing from angular2 CLI project? What to do?
我正在学习 RxJS,我不断尝试许多我觉得有趣的运算符和组合。
我在这里学习表格:http://reactivex.io/documentation/operators.html and here。
我有一个 Angular2 rc4 CLI 项目 - 所以我正在使用 Typescript。 RxJS 是:5.0.0-beta.6
问题:
我发现 Observable 上没有一些运算符。
例如:我想创建一个 returns 对象的一对一键值对的可观察对象:
你可以看到实现的样子,正如我所采用的那样 from here.
// 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
基于 this post 我添加了 2 个导入:
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 安装比 angular cli 提供的更多的类型,但没有工作:
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.
并且还尝试使用:
import * as Rx form 'rxjs/Rx'
myObjProperties$ = Rx.Observable.pairs(myObj) // still doesn't work, same error.
此外,我无法解释为什么无法将 Observable 对象打印到控制台。我得到一个无用的 string-function
。没有原型的东西。
console.log('TheAllmightyObservable : ', Observable) // i get:
// TheAllmightyObservable : function Observable(subscribe) {
// this._isScalar = false;
// if (subscribe) {
// this._subscribe = subscribe;
// }
// }
我有与许多其他运算符相同的问题:ofObjectChanges、ofArrayChanges、ofWithSkeduler、对——其中一些不是那么重要——但当我找到一个 RxJs 运算符时它让我很烦恼这非常有用,我不能在 angular2 CLI 项目中使用它。
问题:
angular2 与 RxJS 有什么关系? (我想我错过了一般图片..) - 是否有单独的 angular2-rxjs 运算符列表或 RxJS 是完全独立的包,并且可以像 Jquery 一样使用?我的意思是两者之间没有有线干扰——我无法预测。 (可能与摘要周期有关?!)
我在哪里可以找到 angular2 上可用的所有 RxJS 运算符的良好列表 - 假设存在。
这只是一个 Typescript - 打字问题吗?如果是这样,如何安装它们以便拥有文档中可用的所有运算符?如果没有可用的类型,如何暂时摆脱这个"no property/method found on x"
问题?
非常感谢您花时间阅读并帮助我找到解决方案:)
根本问题:您正在使用一个版本的 RxJS,但正在查看另一个版本的文档。
RxJS 5(测试版)与 Angular 2 一起使用:https://github.com/ReactiveX/rxjs
RxJS 4(稳定):https://github.com/Reactive-Extensions/RxJS
这些运算符在新版本中不存在,这就是您看不到它们的原因。
针对您的问题:
1) RxJS与Angular2没有任何关系,你可以在没有Angular2的情况下使用RxJS。 RxJS 只是一个用于创建事件流的库,它与您用来 生成 事件的东西正交运行。
2) 如果你使用的是 RxJS 4 那么你可以使用 docs which are pretty good. RxJS 5 is still a work in progress but there are docs that are generated by the build process here.
3) 在这种情况下,这不是打字问题。
我正在学习 RxJS,我不断尝试许多我觉得有趣的运算符和组合。
我在这里学习表格:http://reactivex.io/documentation/operators.html and here。
我有一个 Angular2 rc4 CLI 项目 - 所以我正在使用 Typescript。 RxJS 是:5.0.0-beta.6
问题:
我发现 Observable 上没有一些运算符。
例如:我想创建一个 returns 对象的一对一键值对的可观察对象: 你可以看到实现的样子,正如我所采用的那样 from here.
// 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基于 this post 我添加了 2 个导入:
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 安装比 angular cli 提供的更多的类型,但没有工作:
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.
并且还尝试使用:
import * as Rx form 'rxjs/Rx'
myObjProperties$ = Rx.Observable.pairs(myObj) // still doesn't work, same error.
此外,我无法解释为什么无法将 Observable 对象打印到控制台。我得到一个无用的 string-function
。没有原型的东西。
console.log('TheAllmightyObservable : ', Observable) // i get:
// TheAllmightyObservable : function Observable(subscribe) {
// this._isScalar = false;
// if (subscribe) {
// this._subscribe = subscribe;
// }
// }
我有与许多其他运算符相同的问题:ofObjectChanges、ofArrayChanges、ofWithSkeduler、对——其中一些不是那么重要——但当我找到一个 RxJs 运算符时它让我很烦恼这非常有用,我不能在 angular2 CLI 项目中使用它。
问题:
angular2 与 RxJS 有什么关系? (我想我错过了一般图片..) - 是否有单独的 angular2-rxjs 运算符列表或 RxJS 是完全独立的包,并且可以像 Jquery 一样使用?我的意思是两者之间没有有线干扰——我无法预测。 (可能与摘要周期有关?!)
我在哪里可以找到 angular2 上可用的所有 RxJS 运算符的良好列表 - 假设存在。
这只是一个 Typescript - 打字问题吗?如果是这样,如何安装它们以便拥有文档中可用的所有运算符?如果没有可用的类型,如何暂时摆脱这个
"no property/method found on x"
问题?
非常感谢您花时间阅读并帮助我找到解决方案:)
根本问题:您正在使用一个版本的 RxJS,但正在查看另一个版本的文档。
RxJS 5(测试版)与 Angular 2 一起使用:https://github.com/ReactiveX/rxjs RxJS 4(稳定):https://github.com/Reactive-Extensions/RxJS
这些运算符在新版本中不存在,这就是您看不到它们的原因。
针对您的问题:
1) RxJS与Angular2没有任何关系,你可以在没有Angular2的情况下使用RxJS。 RxJS 只是一个用于创建事件流的库,它与您用来 生成 事件的东西正交运行。
2) 如果你使用的是 RxJS 4 那么你可以使用 docs which are pretty good. RxJS 5 is still a work in progress but there are docs that are generated by the build process here.
3) 在这种情况下,这不是打字问题。