В ожидании завершения ForEach-Loop - PullRequest
0 голосов
/ 25 сентября 2019

я кодирую Ionic-приложение, которое покажет продукты Wordpress / Woocommerce Shop.Теперь я хочу, чтобы пользователи могли выбирать любимые продукты, хранить их в локальном хранилище и показывать их также на другой странице.

Все работает нормально, но у меня возникли проблемы с этим циклом ForEach-Loop в моем "getAllFavoritePosts"-Функция внутри моего файла Wordpress.service.ts:


   getAllFavoritePosts(page = 1): Observable<any[]> {
   this.favUrl = this.url + this.auth + '&_embed' + '&include=0,';
//this is the loop i mentioned
   this.storage.forEach((value,key,index) => {
    this.favUrl = this.favUrl +  key + ',';
    })

    let options = {
      observe: "response" as 'body',
      params: {
        per_page: '12',
        page: ''+page
      }
    };
    return this.http.get<any[]>(`${this.favUrl}`, options).pipe(
      map(resp => {
        this.pages = resp['headers'].get('x-wp-totalpages');
        this.totalProductsFavs = resp['headers'].get('x-wp-total');

        let data = resp['body'];

        for (let post of data) {
          post.media_url = post['images'][0]['src'];
        }
        return data;
      })
    )
  }

Мне нужно завершить цикл до того, как код будет выполнен.Теперь URL с идентификаторами избранных продуктов пуст, потому что он возвращается до того, как цикл будет полностью выполнен.

Если необходимо, это функция в моем home.ts, где вызывается вышеуказанная функция:

 async loadFavs() {
    let loading = await this.loadingCtrl.create({
      message: 'Finde Deals'
    });
    await loading.present();
     this.wps.getAllFavoritePosts().subscribe(res => {
      this.countFavs = this.wps.totalProductsFavs;
      this.favs = res;
    loading.dismiss();
    });
  }

Уже есть проблемы с улыбкой на этой странице, но я до сих пор не могу решить мою проблему.Надеюсь, вы, ребята, можете мне помочь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...