Я ожидаю, что функциональность, использующая NestJS, будет выполнять вызов API, и в случае, если я получу токен для следующего вызова, мне нужно будет запросить тот же API с тем же токеном, что и параметры запроса. Ограничение: API возвращает только 50 записей без токена, поэтому для получения следующих записей мне нужно прикрепить параметры запроса. В случае, если токен пуст, мне нужно завершить вызов. Извлечение видео с YouTube против определенного uploaderId.
Образец, который я написал.
getPlaylistVideos(playlistId: string): any {
this.videos = [];
return new Promise((resolve, reject) =>
this.http
.get(this.getPlaylistURL(playlistId, ''))
.pipe(
map(response => response.data),
tap(() => console.log('\t', `Getting details by URL: this.http.get(this.getPlaylistURL(${playlistId})`)),
tap(videoResponse => {
this.videos.push(...videoResponse.items);
if (videoResponse['nextPageToken']) {
console.log('\t', 'NextToken: ', videoResponse['nextPageToken']);
return mergeMap(video => {
console.log('\t', `this.http.get(this.getPlaylistURL(${playlistId}, ${video['nextPageToken']})`);
return this.http.get(this.getPlaylistURL(playlistId, video['nextPageToken']));
});
} else {
console.log(`videoResponse:`, videoResponse['nextPageToken']);
return empty();
}
})
)
.toPromise()
.then(response => resolve(this.videos))
.catch(err => reject(err))
);
}
Не удается получить следующий набор записей.