Я пытаюсь выполнить несколько запросов get внутри функции карты, но я получаю ', обнаружил необработанное отклонение обещания с "TypeError: Невозможно прочитать свойство trackItems' undefined" '.
Функция, представленная ниже, в основном получает ответ в качестве параметра и создает объект для сохранения его содержимого.В конце я получаю свой объект с идентификатором, именем и типом, как и ожидалось, но массив trackItems всегда остается пустым .Я уверен, что то, что я получаю от моей функции getPlaylistTracks, является правильным и не может понять, почему она не работает должным образом.
Кроме того, я использую requestPromiseNative на getPlaylistTracks для выполнения запроса и использованияожидайте, и моя глобальная переменная homeContentItems имеет такой тип структуры:
приватная статическая homeContentItems : любая = {items: [{content: {items: []}}]};
А это функция saveContent:
private saveContent(homeItemsResponse: any): any {
try {
if (homeItemsResponse && homeItemsResponse !== undefined) {
homeItemsResponse.map((playlistCategoriesItem: any, i: number) => {
const homeContent: any = Home.homeContentItems.items[0].content.items;
homeContent.push({ name: playlistCategoriesItem.name, content: { items: [] } });
const playlistContent: any = playlistCategoriesItem.content.items;
playlistContent.map(async (playlistItem: any) => {
const homePlaylistItems: any = Home.homeContentItems.items[0].content.items[i].content.items;
homePlaylistItems.push({
id: playlistItem.id,
name: playlistItem.name,
type: playlistItem.type,
trackItems: [],
});
const playlistId: string = playlistItem.id;
const response: any = await this.getPlaylistTracks(playlistId);
response.items.map(async (item: any) => {
homePlaylistItems.trackItems.push(item);
});
});
});
}
} catch (error) {
this.logger.info(`@@@@ Home - Error on saveHomeContent: ${error}`);
}
}
Заранее спасибо:)