【问题标题】:Observable.zip is not a functionObservable.zip 不是函数
【发布时间】:2017-10-15 14:54:09
【问题描述】:

VM95422:27 原始异常: WEBPACK_IMPORTED_MODULE_3_rxjs_Observable.Observable.zip 不是函数

尝试了各种导入

// import 'rxjs/add/operator/zip';
// import 'rxjs/add/observable/zip-static';
// import 'rxjs/add/operator/zip';
import 'rxjs/operator/zip';

尝试这样使用它:

const zippedUsers: Observable<User[]> = Observable.zip<User>(this.usersObservable);

Angular 4,TypeScript 2.1.6

package.json:

"rxjs": "^5.1.0",

【问题讨论】:

标签: angular typescript rxjs typescript2.1


【解决方案1】:

也许像

import {Observable} from "rxjs/Observable";
import "rxjs/add/observable/zip";

然后是这样的:

Observable.zip(this.someProvider.getA(), this.someProvider.getB())
        .subscribe(([a, b]) => {
            console.log(a);
            console.log(b);
        });

【讨论】:

    【解决方案2】:

    5.5 rxjs:

    import {zip} from "rxjs/observable/zip";
    const zippedUsers: Observable<User[]> = zip(this.usersObservable);
    

    【讨论】:

    • 我花了 90 多分钟试图找到这个解决方案。我从谷歌找到的材料或文档都没有帮助。但你的回答确实如此。
    【解决方案3】:

    RxJS 6

    从 RxJS 6 开始...

    Observable creation functions

    from()fromPromise()of()zip()应该这样导入:

    import { from, fromPromise, of, zip } from 'rxjs';
    

    并用作普通函数调用:

    const data: Observable<any> = fromPromise(fetch('/api/endpoint'));
    

    Pipeable operators

    应该像这样导入:

    import { map, filter, scan } from 'rxjs/operators';
    

    并用作pipe() 方法参数:

    const someObservable: Observable<number> = ...;
    const squareOddVals = someObservable.pipe(
            filter((n: number) => n % 2 !== 0),
            map(n => n * n))
        .subscribe((n: number): void => ...);
    

    【讨论】:

    • 问题明确提到了 rxjs 5,所以这并没有提供问题的答案。
    • @IngoBürk:我相信 RxJS 5 只是 OP 在询问时(超过 2 年前)使用的版本。如今,我认为如果这个问题与当前版本的库保持同步对社区更有利,特别是考虑到这是谷歌搜索该问题的首要问题。
    • @IngoBürk:另外,通知 this 答案提供了与 RxJS 5.5 相关的信息,这也是比 OP 要求的更高版本。但是已经半年没有人抱怨了:)
    • @AlexanderAbakumov 非常感谢:从接受的答案导入在更新 6->7 后停止工作,从 'rxjs' 导入 { Observable };作品
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多