等待ForEach-Loop完成

时间:2019-09-25 20:23:19

标签: angular typescript ionic-framework foreach

im对将显示Wordpress / Woocommerce商店产品的Ionic-App进行编码。 现在,我希望用户能够收藏产品,将它们存储在本地存储中,并在另一页上显示它们。

一切正常,但我的Wordpress.service.ts文件中的“ getAllFavoritePosts”功能中的ForEach-Loop出现了一些问题:


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

在执行此代码之前,我需要先完成循环。 现在,带有喜爱产品ID的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();
    });
  }

已在此页面上找到了类似的问题,但仍然无法解决我的问题。 希望你们能帮助我!

0 个答案:

没有答案