Prévu pour renvoyer une valeur de flèche; la fonction de la matrice de rappel-retour. Pourquoi?
Je vais avoir quelques problèmes de compréhension pourquoi je me fais une compilation d'avertissement sur ce morceau de mon réagir code
fetch('/users')
.then(res => res.json())
.then(data => {
data.map(users => {
console.log(users);
});
});
L'avertissement que j'obtiens est Expected to return a value in arrow function array-callback-return
Cependant, je suis toujours l'objet json valeurs de mon /users
, et ils sont imprimées sur la console individuellement. L'objet est:
{
id: 1,
username: "Foo"
}, {
id: 2,
username: "Bar"
}
Ai-je raté une instruction de retour, ou alors j'ai loupé quelque chose avec comment map
renvoie les valeurs après un .then()
? Je suis pas clair sur les raisons de la compilation d'avertissement apparaît à tous.
pour imbriquée puis précédente puis "ici .ensuite(res => res.json()) " doit retourner une promesse
Cette flèche fonction dans l'argument n'a de retour d'une promesse. developer.mozilla.org/en-US/docs/Web/API/Response
Cette flèche fonction dans l'argument n'a de retour d'une promesse. developer.mozilla.org/en-US/docs/Web/API/Response
OriginalL'auteur Chef1075 | 2018-01-09
Vous devez vous connecter pour publier un commentaire.
data.map
fonction (cocherArray.map
spécifications: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map) convertit un tableau (data
dans votre cas) à un nouveau tableau. Cette correspondance est définie par l'argument dedata.map
. L'argument dedata.map
(la fonction de rappel), dans votre cas, la flèche de la fonctionusers => {console.log(users);}
, doit retourner une valeur. Par renvoi d'une valeur pour chaque élément du tableau est de savoir commentdata.map
définit la cartographie.Mais dans votre cas, la fonction de rappel ne retourne rien, juste
console.log
s. Dans votre cas, vous pouvez utiliserdata.forEach
(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach) que vous n'utilisez pasArray.map
fonctionnalité.REMARQUE: Si vous décidez d'utiliser
data.map
vous devriez avoir un singulier plutôt qu'au pluriel) nom que l'argument de rappel:data.map(user => {console.log(user);});
qui est maintenant appelé pour chaque utilisateur.OriginalL'auteur croraf
De MDN:
Que signifie la carte de la méthode doit être retourné. Donc,vous devez modifier votre code comme ceci:
ou utiliser forEach() au lieu de la carte()
console.log()
ne retourundefined
vous permettrait d'obtenir un tableau de valeurs indéfinies qui sera calme inutile.forEach()
est le meilleur choix dans ce cas.OriginalL'auteur Cecil
Si vous n'avez pas besoin de muter le tableau et il suffit de faire la console.log (), vous pouvez le faire données.forEach() à la place. Il ne devrait pas vous donner l'alerte. La carte vous attend pour retourner une valeur après vous avez transformé le tableau.
map()
ne pas muter le tableau. Il en crée un nouveau.OriginalL'auteur Rodius