【问题标题】:Angular 6: use Rx.Observable - what to import?Angular 6:使用 Rx.Observable - 要导入什么?
【发布时间】:2019-05-15 21:53:54
【问题描述】:

我想实现这样的代码:

    var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 4,
    center: { lat: -25.363, lng: 131.044 }
});

var source = Rx.Observable.fromEventPattern(
    function (handler) {
        return map.addListener('center_changed', handler);
    },
    function (handler, listener) {
        google.maps.event.removeListener(listener);
    }
);
source.subscribe(function () {
    console.log(map.getCenter());
});

我尝试了很多方法,但我很难以某种方式设置导入配置,因此我没有收到关于“Rx.Observable.fromEventPattern”的错误。

任何人都可以请如何以正确的方式进行设置。我正在使用“rxjs”:“~6.2.0”和 Angular 6。

非常感谢

胡乔

【问题讨论】:

  • 你现在是怎么导入的?
  • 检查我的导入答案。

标签: angular typescript rxjs angular6 reactive


【解决方案1】:

感谢您的帮助。终于成功了:

public $getBounds(): Observable<any> {
    let map = this.map;
    return fromEventPattern(
      function (handler) {
        google.maps.event.addListener(map, 'idle', handler);
      },
      function (handler, listener) {
        google.maps.event.removeListener(listener);
      }
    )
  }

我需要来电者签名...

胡乔

【讨论】:

    【解决方案2】:

    当你使用 Rxjs 6 时,你应该像下面这样导入它 -

    import { fromEventPattern} from 'rxjs';
    

    根据文档,所有 Observable 创建方法都应该像上面一样在 rxjs 6 中导入。

    所以你的代码应该如下 -

    var source = fromEventPattern(
     function (handler) {
            return map.addListener('center_changed', handler);
        },
        function (handler, listener) {
            google.maps.event.removeListener(listener);
        }
      );
    

    你也可以像上面一样导入Observable

    请参阅此迁移文档: https://github.com/ReactiveX/rxjs/blob/master/docs_app/content/guide/v6/migration.md

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-20
      • 2018-11-11
      • 2017-11-23
      • 2018-09-23
      • 1970-01-01
      • 1970-01-01
      • 2016-04-04
      • 1970-01-01
      相关资源
      最近更新 更多