```js
const tmdbKey = '15693e78cc7e2cb615a69754fb52b56f';
const tmdbBaseUrl = 'https://api.themoviedb.org/3';
// play button
const playBtn = document.getElementById('playBtn');
// 获得电影类型
const getGenres = async () => {
const genreRequestEndpoint = '/genre/movie/list';
const requestParams = `?api_key=${tmdbKey}`;
const urlToFetch = tmdbBaseUrl+genreRequestEndpoint+requestParams;
try{
const response = await fetch(urlToFetch);
if(response.ok){ const jsonResponse = await response.json();
// console.log(jsonResponse);您应该看到一个具有单个键genres的单个对象。genres的值是一个列出TMDB的流派的数组。将jsonResponse的genres属性保存在名为genres的变量中。将这个变量记录到控制台,以确认它包含了正确的信息。
const genres = jsonResponse.genres;
// 查看响应结果console.log(genre);
return genres;
}
}catch(error){console.log(error);}
};
//获得用户选中的电影类型的电影
const getMovies = async () => {
const selectedGenre = getSelectedGenre();
const discoverMovieEndpoint = '/discover/movie';
//selectedGenre存储从捕获用户选择的类型的辅助函数(helpers.jsgetSelectedGenre()中的函数)返回的值。
const requestParams = `?api_key=${tmdbKey}&with_genres=${selectedGenre}`;
const urlToFetch = tmdbBaseUrl+discoverMovieEndpoint+requestParams;
try{
const response = await fetch(urlToFetch);
if(response.ok){ const jsonResponse = await response.json();
//查看响应结果:console.log(jsonResponse);
//在控制台中,您将看到一个名为 的键results,它包含结果第一页中所有电影的数组。将results的属性存储jsonResponse在名为 的变量中movies。这样只返回results的结果
const movies = jsonResponse.results;
// console.log(movies);
return movies;
}
}catch(error){console.log(error);};
};
//???为什么这里查看console.log(jsonResponse);结果要调用,但getGenres查看console.log(jsonResponse);时不需要
getMovies();
// 获得选择电影的信息
const getMovieInfo = async (movie) => {
const movieId = movie.id;
const movieEndpoint = `/movie/${movieId}`;
const requestParams = `?api_key=${tmdbKey}`;
const urlToFetch = tmdbBaseUrl+movieEndpoint+requestParams;
try{
const response = await fetch(urlToFetch);
if(response.ok){ const jsonResponse = await response.json();
const movieInfo = jsonResponse;
return movieInfo;
}
}catch(error){console.log(error);};
};
// Gets a list of movies and ultimately displays the info of a random movie from the list
const showRandomMovie = async () => {
const movieInfo = document.getElementById('movieInfo');
if (movieInfo.childNodes.length > 0) {
clearCurrentMovie();
};
const movies = await getMovies();
const randomMovie = getRandomMovie(movies);
const info = await getMovieInfo(randomMovie);
displayMovie(info);
};
getGenres().then(populateGenreDropdown);
playBtn.onclick = showRandomMovie;
```
[Film Finder](https://www.codecademy.com/journeys/full-stack-engineer/paths/fscj-22-front-end-development/tracks/fscj-22-async-javascript-and-http-requests/modules/wdcp-22-learn-javascript-syntax-requests-b556a0a9-9188-4d31-a713-5c1cbf63bc7c/projects/js-film-finder)