Bonjour,
c'est normal que tu n'ait rien dans ton tableau car tu utilises une fonction asynchrone avec fetch. Voici l'ordre dans laquelle ton code est lu.
function fetchapi() {
// 2
let tableau = [];
// 3 fonction asynchrone retournant une promise. Les then seront appelés lorsque la requête HTTP sera terminée
fetch('https://reqres.in/api/users?page=2')
// 6
.then(val => val.json())
// 7
.then(val => {
// 8
val.data.map(data => {
tableau.push(data);
});
});
// 4
console.log(tableau);
// 5
console.log(tableau.length);
};
// 1
fetchapi();
Voici deux solutions possibles pour ton problème
// solution une
function fetchapi() {
let tableau = [];
fetch('https://reqres.in/api/users?page=2')
.then(val => val.json())
.then(val => {
tableau = val.data
console.log(tableau);
});
};
fetchapi();
// solution deux
async function fetchapi() {
let tableau = [];
try {
const response = await fetch('https://reqres.in/api/users?page=2')
const data = response.json();
tableau = data.val
} catch(e) {
console.error(e);
}
};
fetchapi();
PS: map est utilisé pour transformer les objets. Si tu veux seulement itérer sur un tableau, il faut utiliser forEach.