Проблема
Привет друзья,
У меня проблема, когда я хочу получить все эпизодыконкретное аниме, использующее функцию animeEpisodesVideo
, показывает мне:
{episode: 1, video: Promise {<pending>},
, чтобы получить конкретное видео, я должен использовать getAnimeVideo function
, который отвечает за возврат видео эпизода. *
Если кто-то может помочь мне решить проблему, я буду признателен за это
ПОЛУЧИТЬ все эпизоды аниме
const animeEpisodesVideo = async(id) =>{
const res = await fetch(`${ANIME_URL}${id}`);
const body = await res.text();
const $ = cheerio.load(body);
const promises = [];
$('div.container').each((index , element) =>{
const $element = $(element);
const total_eps = $element.find('ul.list-group li.list-group-item').length;
let videos = [];
$element.find('ul.list-group li.list-group-item').each((j , elem) =>{
const $el = $(elem);
const eps_id = $el.find('a').attr('href').split('/')[4];
videos = new Promise((resolve, reject) =>{
try {
resolve( Array.from({length: total_eps} , (v , k) =>{
return{
episode: k + 1,
video: getAnimeVideo(eps_id)
}
}))
}catch(error){
console.log(error);
}
});
promises.push(videos);
});
});
return await Promise.all(promises)
.then(doc =>{
return doc[1];
}).catch(error =>{
console.log(error);
});
};
// testing anime episodes videos url
// Episodes OUTPUT
//[ { episode: 1, video: Promise { <pending> } },
// { episode: 2, video: Promise { <pending> } },
// { episode: 3, video: Promise { <pending> } },
// { episode: 4, video: Promise { <pending> } },
// { episode: 5, video: Promise { <pending> } },
// { episode: 6, video: Promise { <pending> } },
// { episode: 7, video: Promise { <pending> } },
// { episode: 8, video: Promise { <pending> } },
// { episode: 9, video: Promise { <pending> } },
// { episode: 10, video: Promise { <pending> } },
// { episode: 11, video: Promise { <pending> } },
// { episode: 12, video: Promise { <pending> } } ]
(async() =>{
await animeEpisodesVideo('tokyo-ghoul')
.then(doc =>{
console.log(doc)
})
})()
ПОЛУЧИТЕ один эпизод видео
const getAnimeVideo = async(id) =>{
const res = await fetch(`${ANIME_VIDEO_URL}${id}`);
const body = await res.text();
const $ = cheerio.load(body);
const videos = [];
$('div.container').each((index , element) =>{
const $element = $(element);
const video = $element.find('iframe').attr('src');
videos.push(video);
})
return videos.filter(v => !!v)[0];
};
Результаты, полученные с терминала
[ { episode: 1, video: Promise { <pending> } },
{ episode: 2, video: Promise { <pending> } },
{ episode: 3, video: Promise { <pending> } },
{ episode: 4, video: Promise { <pending> } },
{ episode: 5, video: Promise { <pending> } },
{ episode: 6, video: Promise { <pending> } },
{ episode: 7, video: Promise { <pending> } },
{ episode: 8, video: Promise { <pending> } },
{ episode: 9, video: Promise { <pending> } },
{ episode: 10, video: Promise { <pending> } },
{ episode: 11, video: Promise { <pending> } },
{ episode: 12, video: Promise { <pending> } } ]
Результаты, которые я должен получить, если это решит проблему
[ { episode: 1, video: eps01.mp4 },
{ episode: 2, video: eps02.mp4 },
{ episode: 3, video: eps03.mp4 },
{ episode: 4, video: eps04.mp4 },
{ episode: 5, video: eps05.mp4 },
{ episode: 6, video: eps06.mp4 },
{ episode: 7, video: eps07.mp4},
{ episode: 8, video: eps08.mp4},
{ episode: 9, video: eps09.mp4 },
{ episode: 10, video: eps10.mp4 },
{ episode: 11, video: eps11.mp4 },
{ episode: 12, video: eps12.mp4} ]