Я создал пару сервисов, которые извлекают данные из моего API, преобразуют их в объекты TypeScript и возвращают их как обещание:
public getProductsFromApi(): Promise<Product[]> {
const url: string = `${this.baseUrl}/products`;
return fetch(url, {
method: "GET",
credentials: this.credentials,
})
.catch(this.checkErrors)
.then((jsonResponse) => {
return jsonResponse.map((jsonProduct: string) => {
const jsonConvert: JsonConvert = new JsonConvert();
return jsonConvert.deserializeObject(jsonProduct, Product);
});
});
}
По некоторым причинам функции никогда не возвращают массив продукты, и поэтому функция, которая вызывает эту функцию, не получает обещание ...
Моя checkErrors
функция выглядит так:
public checkErrors(response: any) {
if (response.status >= 200 && response.status <= 299) {
const jsonResponse = response.json();
return jsonResponse;
} else {
throw Error(response.statusText);
}
}
Я пытался использовать deserializeArray
, Я попытался сделать forEach
и отправить преобразованный Products
в массив, а затем вернуть массив, но ничего не работает.