В этом случае вам нужно асинхронное ожидание, и хорошо использовать Promise.all, потому что вы делаете выборку в forEach.
Для forEach вам нужно дождаться Promise.all, а для получения нужно дождаться. Это означает, что он будет ждать, пока forEach будет завершен
Изменить
fetch('https://api.themoviedb.org/3/movie/popular?api_key=APIKEY&page=1')
.then(response => response.json())
.then(data => {
const movies = data.results;
movies.forEach(movie => this.moviePageAndGenres(movie.id, movie));
this.setState({
movies
});
})
на
fetch('https://api.themoviedb.org/3/movie/popular?api_key=APIKEY&page=1')
.then(response => response.json())
.then(async data => {
const movies = data.results;
await Promise.all(movies.forEach(async movie => await this.moviePageAndGenres(movie.id, movie)))
this.setState({
movies
});
})
Также
Изменить
moviePageAndGenres = (id, element) => {
fetch('https://api.themoviedb.org/3/movie/' + id + '?api_key=APIKEY')
.then(response => response.json())
.then(data => {
element.genres = data.genres;
element.homepage = data.homepage;
});
}
К
moviePageAndGenres = async (id, element) => {
return await fetch('https://api.themoviedb.org/3/movie/' + id + '?api_key=APIKEY')
.then(response => response.json())
.then(data => {
element.genres = data.genres;
element.homepage = data.homepage;
});
}
Можно сделать это в IntelliJ, но АНГЛИЧАНИН, которого он генерирует, может быть более сложным, чем если бы Вы пишете вручную. Если Ваш проект в настоящее время находится в JBuilder или Eclipse, можно импортировать это сначала.
Вместо этого я предложил бы, чтобы Вы описали свой проект в АНГЛИЧАНИНЕ и использовали его для генерации информации проекта. Можно сделать это для затмения и идеи (и я принимаю другие IDE)
Один способ сделать это это для создания шаблонного проекта через архетип знатока тогда перемещает существующий код в шаблон. Я рекомендовал бы это только для действительно простых проектов. Это работало бы что-то вроде этого.
mvn archetype:generate
mv src/* src/main/java
mv test/* src/test/java
mvn package
Вы получите ошибки. Для добавления недостающих зависимостей пойдите сюда: http://www.mvnrepository.com/ и начинают искать их. При выборе архетипа близко к тому, в чем Вы нуждаетесь, Вы будете половиной пути там.
, Как только все это работает.
svn commit -m "hacky maven port"
Ваш существующий проект, вероятно, не использует Знатока, так создание АНГЛИЧАНИНА на основе его не тривиально.
самый простой способ, которым я могу думать, состоит в том, чтобы получить плагин Знатока для Eclipse, генерировать новый проект знатока и затем добавить Ваш код.
необходимо будет также управлять внешними банками с помощью метода Знатока. В этом случае они, вероятно, были бы системными банками.
В eclipse Galileo, если у Вас есть плагин maven2, Вы можете выбрать проект, а затем щелкнуть правой кнопкой мыши и спуститься в Maven2 в контекстном меню, и там должна быть возможность конвертировать проект в проект maven.