• Как функцию заставить ждать выполнение другой функции Angular 2+?

    mazhekin
    @mazhekin
    Frontend, Backend Web Developer
    промисы использовать во втором ангуляре это треш, надо переучиватся на стиль второго ангуляра, сами разработчики ангуляра 2+ уже включили rxjs во фреймворк и отказались от промисов.
    buildMarkers(cars): void {
      return Observable.create(observer => {
        for (let i in cars) {
          let lat: number = cars[i].coordinates.lat;
          let lon: number = cars[i].coordinates.lon;
          let pin = cars[i].pin;
          let singleMarker = new Marker([lat, lon], {
            icon: new DivIcon({
              className: 'my-div-icon',
              html: this.getHtmlMarker(cars, pin)
            })
          });
          this.layers.push(singleMarker);
        };
        
        observer.next();
        observer.complete()
      });
    };
    
    public mapReady(map) {
        this.map = map;
        let that = this;
    
        that.buildMarkers(this.cars).subscribe(() => {
          // тут выполните код, который гарантированно выполнится после buildMarkers
        });
       
      };
    Ответ написан
    1 комментарий