Angular 6: используйте Rx.Observable - что импортировать? - PullRequest
0 голосов
/ 14 декабря 2018

Я хотел бы реализовать такой код:

    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.

Большое спасибо

Hucho

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Спасибо за вашу помощь.Наконец это сработало:

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);
      }
    )
  }

Мне нужно было подпись абонента ...

Hucho

0 голосов
/ 14 декабря 2018

Поскольку вы используете Rxjs 6, вы должны импортировать его, как показано ниже -

import { fromEventPattern} from 'rxjs';

согласно документации, все наблюдаемые методы создания должны быть импортированы, как указано выше, в 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

...