Je construis un service d'enregistrement vidéo en tant que projet et ai un tableau des vidéos enregistrées de l'utilisateur obtenu à partir de la base de données response.array[]
, puis je pousse le videoId
dans un tableau d'affichage video[]
mais sur affichant le videoId
respectif en utilisant console.log()
il continue à venir indéfini.Array élément est indéfini même après avoir poussé des éléments
J'ai l'extrait de code comme ci-dessous.
let video = [];
this.service.nextVideo().subscribe(response =>
{
response.array.forEach(element => {
video.push(element.videoId);
});
})
console.log(video[0]); //Output is undefined
L'extrait de code complet est comme tel
nxtVideo(){
let video = [];
this.service.nextVideo().subscribe(response =>
{
response.array.forEach(element => {
console.log(element.videoId);//Display's video id
video.push(element.videoId);
});
})
console.log(video[0]); //Output undefined
console.log(video); //Output shows all elements but on accessing specific elements it shows undefined
return (video[this.offset++]); //offset is a global variable to measure watched videos
}
Launch(){
let videoId = this.nxtVideo();
//The Display table starts here
}
parce que cela semble être async 'console.log (vidéo [0])' est exécutée avant la fin de l'appel async –
Peut-être parce que la méthode 'response' est invoqué de manière asynchrone après' déclaration console.log' a déjà été réalisé. – gurvinder372
Merci pour le commentaire, Comment puis-je le résoudre? Comme j'ai besoin de renvoyer 'video [0]' à une autre variable car cet extrait entier entre dans une fonction différente. – Nithin