Я пробовал здесь много ответов, но все ответы, которые я нашел, люди используют jquery, ajax, react или тому подобное. Я хотел бы получить ответ на чистом javascript (vanilla js).
const movieApiMovies = () => {
fetch(movieApi_url + "movies/")
.then(response => response.json())
.then(function (data) {
let result = `<h2> Movies I've watched! </h2>`;
data.forEach((movie) => {
const {id, name, year, note_imdb, genre, duration} = movie;
result +=
`<div>
<h5> Movie ID: ${id} </h5>
<ul>
<li>Movie name: ${name}</li>
<li>Movie year: ${year}</li>
<li>Movie note on IMDB: ${note_imdb}</li>
<li>Movie Genre: ${genre}</li>
<li>Movie duration: ${duration}</li>
</ul>
</div>`;
document.getElementById('movieResult').innerHTML = result;
})
})
};
У меня есть анимация, она на этом элементе Div.
<div class = "boxLoading"></div>
И у меня есть кнопка, которая будет вызывать все.
<div id = "button1">
<button class = "button" id = "moviesfromapi"onclick = "movieApiMovies ()">Display</button>
</div>
Я получил ошибки обещаний, пытаясь сделать это внутри метода fetch, поэтому я не опубликовал его. Спасибо за подсказку.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


добавьте загрузчик перед вызовом и удалите, как только получите результаты, как показано ниже
const movieApiMovies = () => {
let loader = `<div class = "boxLoading"></div>`;
document.getElementById('movieResult').innerHTML = loader;
fetch(movieApi_url + "movies/")
.then(response => response.json())
.then(function (data) {
let result = `<h2> Movies I've watched! </h2>`;
data.forEach((movie) => {
const {id, name, year, note_imdb, genre, duration} = movie;
result +=
`<div>
<h5> Movie ID: ${id} </h5>
<ul>
<li>Movie name: ${name}</li>
<li>Movie year: ${year}</li>
<li>Movie note on IMDB: ${note_imdb}</li>
<li>Movie Genre: ${genre}</li>
<li>Movie duration: ${duration}</li>
</ul>
</div>`;
document.getElementById('movieResult').innerHTML = result;
})
})
};
Спасибо!! Я пытался сделать это внутри выборки и получал ошибки обещаний.
«Я много пробовал» - опубликованный вами код показывает отсутствие попыток сделать что-либо, кроме получения данных и их отображения. Подсказка: запускайте анимацию перед вызовом fetch, завершайте анимацию после обновления
movieResult- простота