我正在使用Observable类并具有以下内容
import { Observable } from 'rxjs/Observable';
现在我想使用Observable的.of函数,因此我必须将以下内容添加到我的导入中
import 'rxjs/add/observable/of';
我的问题是,为什么我必须单独导入这些功能。这不应该是Observable类的一部分吗?另外,当我导航到rxjs模块文件夹时,我看到了许多不同的文件,例如of.d.ts,merge.d.ts。为什么这些在单独的文件中,是否最小化加载的文件?另外,如果我愿意,如何加载完整的库?
答案 0 :(得分:4)
是的,允许您尽可能减少图书馆的占地面积。如果要将所有内容拖入,可以引用Rx.d.ts文件。但是,我发现只针对我使用的东西只能在rxjs中节省超过100K uglified js,所以我创建了自己的"桶"为了这个任务。这是一个样本:
var seconds = time.getSeconds();
$('.color').each(function setColors(i) {
$(this).css('background', colors[i + seconds]);
});
请注意,export { Observable } from 'rxjs/Observable';
export { Subscription } from 'rxjs/Subscription';
export { Subject } from 'rxjs/Subject';
export { BehaviorSubject } from 'rxjs/BehaviorSubject';
export { AsyncSubject } from 'rxjs/AsyncSubject';
import 'rxjs/add/observable/never';
import 'rxjs/add/observable/of';
import 'rxjs/add/observable/timer';
import 'rxjs/add/observable/using';
import 'rxjs/add/observable/fromEvent';
import 'rxjs/add/observable/zip';
import 'rxjs/add/operator/concat';
import 'rxjs/add/operator/pairwise';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/switchMap';
import 'rxjs/add/operator/merge';
import 'rxjs/add/operator/combineLatest';
import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/distinctUntilChanged';
import 'rxjs/add/operator/do';
import 'rxjs/add/operator/first';
import 'rxjs/add/operator/delay';
import 'rxjs/add/operator/zip';
中的文件是您希望能够在Observable上调用的静态方法,observable
中的文件是Observable实例上可用的文件。