Я занимаюсь разработкой веб-приложения с использованием Angular (v6.0.0).У меня есть сервер, который предоставляет API для извлечения продуктов.Все работает нормально, но мне интересно, правильно ли то, что я сделал и КАК я это сделал.Если нет, я задаюсь вопросом, может ли кто-нибудь помочь мне улучшить мой код.
Ниже приведен мой HttpService, который я использую как расширение HttpClient, потому что я должен установить используемый язык в URL-адресе запроса:
HttpService
import { HttpClient, HttpParams } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { environment } from '../../../environments/environment';
import { TranslateService } from '@ngx-translate/core';
@Injectable({
providedIn: 'root'
})
export class HttpService {
constructor(
private http: HttpClient,
private translate: TranslateService
) { }
/**
* General GET request
*
* @param {string} url URL of the request
* @param {HttpParams} [params]
* @returns {Promise<any>}
* @memberof HttpService
*/
async get(url: string, params?: HttpParams): Promise<any> {
return await this.http.get<any>(`${environment.apiURL}${this.translate.getDefaultLang()}/${url}`, { params: params }).toPromise();
}
}
Тогда у меня есть ProductService :
import { Injectable } from '@angular/core';
import { HttpService } from '../http/http.service';
import { Product } from 'src/app/models/product';
import { HttpParams } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class ProductService {
constructor(
private httpService: HttpService
) { }
async getProductsByCategory(categoryId: string): Promise<Product[]> {
let res = await this.httpService.get('products', new HttpParams().set('category', categoryId).set('perPage', '1000'));
return res.data;
}
}
Здесь обратите внимание, что я знаю, что продукты'array is res.data
.
Теперь, в компоненте, где я использую ProductService
, я делаю следующее:
this.products = await this.productService.getProductsByCategory(ID);
Как я сказал вВ начале вопроса все, кажется, работает нормально, как и ожидалось, но я путаюсь со всеми статьями, которые я прочитал об обещаниях и как их использовать, поэтому я хотел бы спросить вас, ребята, правильно ли этоспособ использовать обещания или если мне нужно улучшить мой код.
Спасибо за ваши ответы!