首页 > 解决方案 > .zip() 与 Observable.zip() 有什么区别(rxjs ^5.5.6)

问题描述

我是 rxjs 的新手并"rxjs": "^5.5.6"在 Angular 5 项目中使用。我有从不同位置导入 zip 的问题。

此代码工作正常:

import { Observable } from 'rxjs';
...
Observable.zip(
    this.loadTexture('1.png'),
    this.loadTexture('2.jpg'),
    this.loadTexture('3.jpg'),
    (t1, t2, t3) => ({ fairCloudsTexture: t1, noCloudsTexture: t2, elevBumpTexture: t3 })
).subscribe((textures) => {
    this.fairCloudsTexture = textures.fairCloudsTexture;
    this.noCloudsTexture = textures.noCloudsTexture;
    this.elevBumpTexture = textures.elevBumpTexture;
    this.initThreeJS();
});

但是当我使用这个导入时它不起作用:

import { zip } from 'rxjs/operators';
...
zip(
    this.loadTexture('1.png'),
    this.loadTexture('2.jpg'),
    this.loadTexture('3.jpg'),
    (t1, t2, t3) => ({ fairCloudsTexture: t1, noCloudsTexture: t2, elevBumpTexture: t3 })
).subscribe((textures) => {
    this.fairCloudsTexture = textures.fairCloudsTexture;
    this.noCloudsTexture = textures.noCloudsTexture;
    this.elevBumpTexture = textures.elevBumpTexture;
    this.initThreeJS();
});

这两种方法有什么区别zip?为什么我会收到此错误? Property 'subscribe' does not exist on type 'UnaryFunction<Observable<{}>, Observable<{ fairCloudsTexture: {}; noCloudsTexture: {}; elevBumpTexture: {}; }>>'.ts(2339)

标签: angularrxjs

解决方案


推荐阅读