У меня есть служба, которая получает данные конечной точки:
Service.ts
getAllProducts(){
return new Promise( (resolve, reject) => {
this.apiService.get( this.allProducts, `/products`, {} )
.then( data => resolve( data.map( item => this.parseProductDetails( item ) ) ) )
.catch( err => reject( err ) );
} );
}
console.log(data)
- выдает все продукты.Все в порядке. И функция this.parseProductDetails также нормально возвращает все продукты.
Но когда я звоню из компонента:
ionViwDidLoad(){
this.productProvider.getAllProducts()
.then( () => {
items => this.items = items;
console.log('All products', this.items)
} )
.catch( err => console.debug( 'products not found', err ) )
}
console.log('All products', this.items)
- ничего в журнале консоли не возвращается, недаже не определено или Текст всех продуктов.
Что не так с этим кодом и что я должен изменить, чтобы я мог получать информацию в компоненте?
parseProductDetails (item):
protected parseProductDetails( data: any ): Object {
let parsed: any = data;
try {
parsed.dimensions = JSON.parse( data.dimensions );
} catch( e ) { parsed.dimensions = []; }
if( data.price )
parsed.priceFormatted = this.formatPrice( data.price, data.currency );
else
parsed.priceFormatted = false;
if( data.delivery )
parsed.deliveryFormatted = this.formatPrice( data.delivery, data.currency );
else
parsed.deliveryFormatted = false;
if( data.stock )
parsed.stockFormatted = this.formatStock( data.stock, data.stockUnit );
else
parsed.stockFormatted = false;
return parsed;
}
возвращенный анализ дает массив.