I have this (piece of) my website, where I need to grab data from the TVDB/the MovieDB API. I need the screenshot of an episode, so I use
theMovieDb.tvEpisodes.getImages({
"id": showID,
"season_number": season_number,
"episode_number": episode_number
}, function(data){}, function(error){})
I need to execute it 6 times, because I need 6 images with 6 different episodes.
for(var i = 0; i < 7; i++){
}
But the problem is, if I now ask console.log(i)
inside the function(data){}
part, it logs 6
, six times...
What did I do wrong?
This is the full code, with variables from other functions etc...
for(var i = 0; i < 6; i++) {
iF = i;
u = i + 1
epLen = data.episodes[data.episodes.length - 1 - i]
var thies = "<center><span style='font-family: Arial'>" + epLen.season_number + 'x' + epLen.episode_number + ": <br>" + epLen.name + "<br>"+ epLen.air_date +"</span></center>";
var thisId = "recent" + u.toString();
var text = thies;
document.getElementById(thisId).innerHTML = text;
theMovieDb.tvEpisodes.getImages({"id": showID, "season_number": epLen.season_number, "episode_number": epLen.episode_number},
function(data){
var data = JSON.parse(data);
window.still = data.stills[0].file_path;
console.log(window.still);
console.log(iF); // logs 5
console.log(i); // logs 6
},
function(error){})
//alert(i)
//var still = window.still;
//console.log(still);
//var epStil = "https://image.tmdb.org/t/p/original" + still.stills[0].file_path;
//var epStill = "url(" + epStil + ")";
//document.getElementsByClassName("recent")[i].style.backgroundImage = epStill;
}
EDIT
I found the solution, and since it is marked as a duplicate, I can't answer anymore, so I'll post it here:
epStilArray = [];
for(var i = 0; i < 6; i++) {
iF = i;
u = i + 1
epLen = data.episodes[data.episodes.length - 1 - i]
var thies = "<center><span style='font-family: Arial'>" + epLen.season_number + 'x' + epLen.episode_number + ": <br>" + epLen.name + "<br>"+ epLen.air_date +"</span></center>";
var thisId = "recent" + u.toString();
var text = thies;
document.getElementById(thisId).innerHTML = text;
theMovieDb.tvEpisodes.getImages({"id": showID, "season_number": epLen.season_number, "episode_number": epLen.episode_number},
function(data){
var data = JSON.parse(data);
still = data.stills[0].file_path;
var epStil = "https://image.tmdb.org/t/p/original" + still;
var epStil = "url(" + epStil + ")";
epStilArray.push(epStil);
console.log(epStilArray);
document.getElementsByClassName("recent")[epStilArray.length - 1].style.backgroundImage = epStil;
},
function(error){})
}