【问题标题】:property 'forkJoin' does not exist on type 'typeof observable' - angular2类型'typeof observable'上不存在属性'forkJoin' - angular2
【发布时间】:2016-07-18 18:36:41
【问题描述】:

我希望主要使用此处接受的答案来试验 forkJoin:

Angular2 Observable.forkJoin of observable variables - ReferenceError: Observable is not defined

我收到上述错误消息,因为 forkJoin 不可用。

有人知道为什么吗?

【问题讨论】:

    标签: angular angular2-services


    【解决方案1】:

    这是你做的吗?

    import { Observable } from 'rxjs/Observable';
    import 'rxjs/add/observable/forkJoin';
    

    您必须单独添加方法。

    【讨论】:

    • 请注意,这是一个静态方法,因此正如 Dan 所写,您必须 import 'rxjs/add/observable/forkJoin',而 import 'rxjs/add/operator/forkJoin'。已经被那个咬过两次了……
    【解决方案2】:

    Angular 6 稍微改变了这一点。 forkJoin 已被转换为常规函数,因此,而不是:

    import {Observable} from 'rxjs/Observable';
    ...
    return Observable.forkJoin(
        this.http.get('someurl'),
        this.http.get('someotherurl'));
    

    用途:

    import {forkJoin} from 'rxjs';
    ...
    return forkJoin(
        this.http.get('someurl'),
        this.http.get('someotherurl'));
    

    你可以去https://www.metaltoad.com/blog/angular-6-upgrading-api-calls-rxjs-6了解更多。

    【讨论】:

      【解决方案3】:

      你只需要替换

      import { Observable } from 'rxjs/Observable';
      

      通过

      import { Observable } from 'rxjs/Rx';
      

      它会开始工作

      警告:不要使用此方法,因为它将包含整个 RxJs 库(增加 kb 包大小)

      【讨论】:

      • 如果您不想下载整个库,@dan-cancro 的解决方案会更好。
      • 这个解决方案对我来说适用于 Angular 4,但我在使用 Angular 5(生产版本)时遇到问题
      • 警告:不要使用此方法,因为它会包含整个 RxJs 库(增加 kb 包大小)
      【解决方案4】:

      检查您的 Rxjs 版本,如果您使用的是 Rxjs 6,请使用 import { Observable } from 'rxjs/Observable'; import 'rxjs/add/observable/forkJoin'; 不行,改用import { Observable, forkJoin } from 'rxjs'

      【讨论】:

        【解决方案5】:

        我一直在运行 Angular 5.2.0 版并遇到了类似的问题。所以不要用下面的方式调用 observable

        import { Observable } from 'rxjs/observable'
        

        我通过包含整个 RxJs 库来导入 Observable

        import { Observable } from 'rxjs/Rx'
        

        然后对于 forkJoin,包括下面的导入模块

        import 'rxjs/add/observable/forkJoin';
        

        代码编译成功。

        【讨论】:

          【解决方案6】:

          对我来说,Angular 4 有帮助:

          import {Observable} from 'rxjs/Rx';
          instead of:
          import {Observable} from 'rxjs/Observable';
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-31
            • 2018-11-25
            • 2019-06-30
            • 1970-01-01
            • 2016-10-26
            • 2021-01-09
            相关资源
            最近更新 更多