я кодирую 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();
});
}
Уже есть проблемы с улыбкой на этой странице, но я до сих пор не могу решить мою проблему.Надеюсь, вы, ребята, можете мне помочь!