Renvoi de données à partir d'Axios API
Je suis en train d'essayer d'utiliser un Node.JS demande à effectuer et de recevoir des requêtes à l'API. Il fait une demande à un autre serveur à l'aide de Axios avec des données qu'il reçoit d'un appel d'API qu'il reçoit. Le deuxième extrait est lorsque le script renvoie les données de l'appel. Il va la prendre et à écrire dans la console, mais il ne l'envoyez pas en arrière dans la deuxième API.
function axiosTest () {
axios.get(url)
.then(function (response) {
console.log(response.data);
//I need this data here ^^
return response.data;
})
.catch(function (error) {
console.log(error);
});
}
...
axiosTestResult = axiosTest();
response.json({message: "Request received!", data: axiosTestResult});
Je suis conscient que c'est mal, je suis juste essayer de trouver un moyen de le faire fonctionner. La seule façon que je peux sembler obtenir des données c'est par le biais de la console.journal, ce qui n'est pas utile dans mon cas.
- Double Possible de Comment puis-je retourner la réponse d'un appel asynchrone?
Vous devez vous connecter pour publier un commentaire.
Retour, la promesse de l'axios appel dans le
axiosTest
fonction, puis obtenir la valeur de la promesse lors de l'appel à l'aide d'une autre.then
Je recommande aussi la lecture plus sur la façon dont les promesses de travail: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises
J'ai fait un tableau vide avant d'appeler l'axios obtenir
et après .ensuite(function(response)) a poussé les données nécessaires dans le tableau
à la fin de la fonction renvoyée le tableau
axiosTest()
est tirasynchronously
et de ne pas être attendu.Un
then()
function
doit être raccordé par la suite dans le but de capturer leresponse
variable
(axiosTestData
).Voir
Promesse
pour plus d'info.Voir
Async
pour monter de niveau.JS:
HTML:
OMI extrêmement important de la règle de pouce pour votre côté client code js est de garder séparés les données de la manipulation de l'interface et de la construction logique dans différents funcs, qui est également valable pour axios la récupération de données ... de cette façon, votre flux de contrôle d'erreur et de maniements sera beaucoup plus simple et plus facile à gérer, car il peut être vu à partir de cette
ok fetch
et ce
NOK chercher
L'axios bibliothèque crée une Promesse() de l'objet. La promesse est un objet intégré dans JavaScript ES6. Lorsque cet objet est instancié à l'aide du mot clé new, elle prend une fonction en tant qu'argument. Cette fonction unique, à son tour prend deux arguments qui sont aussi des fonctions de résoudre et de les rejeter.
Promet d'exécuter le code côté client et, en raison de cool Javascript asynchrone flux, pourrait éventuellement résoudre une ou deux choses, que la résolution (généralement considérés comme sémantiquement équivalent à une Promesse de succès), ou que le rejet (largement considéré comme une erreur de résolution). Par exemple, il peut contenir une référence à un objet promise qui comprend une fonction qui va finalement retourner un objet de réponse (ce qui serait contenue dans la Promesse de l'objet). D'une façon que nous pourrions utiliser une telle promesse est d'attendre la promesse du se résoudre à une sorte de réponse.
Vous pouvez relancer nous ne voulons pas attendre quelques secondes pour que notre API pour revenir à un appel! Nous voulons que notre INTERFACE utilisateur d'être en mesure de faire des choses tout d'attente pour l'API de réponse. À défaut, nous aurions un très lente de l'interface utilisateur. Alors, comment faire face à ce problème?
Bien une Promesse est asynchrone. Dans une implémentation standard de moteurs responsable de l'exécution de code Javascript (comme le Nœud ou le navigateur commun) sera résolu dans un autre processus, alors que nous ne savons pas à l'avance quel sera le résultat de la promesse sera. Une stratégie habituelle consiste alors à envoyer de nos fonctions (c'est à dire une Réagir setState pour une fonction de classe) à la promesse, résolu, selon une sorte de condition (dépend de nos choix de bibliothèque). Cela se traduira dans nos locaux de Javascript les objets en cours de mise à jour basée sur la promesse de résolution. Ainsi, au lieu de les accesseurs et mutateurs (traditionnelle de la programmation orientée objet) que vous pouvez penser de fonctions que vous pouvez envoyer à vos méthodes asynchrones.
Je vais utiliser Fetch dans cet exemple, donc vous pouvez essayer de comprendre ce qui se passe dans la promesse et de voir si vous pouvez reproduire mes idées au sein de votre axios code. Fetch est similaire à axios sans l'inné JSON de conversion, et a un débit différents pour résoudre les promesses (ce qui devrait se référer à l'axios documentation pour en savoir plus).
GetCache.js
Maintenant que nous avons écrit notre GetCache méthode, permet de voir à quoi il ressemble à une mise à jour de Réagir état du composant comme un exemple...
Certains Réagissent Composant.jsx
En fin de compte, vous n'avez pas de "retour" des données en tant que tel, je veux dire que vous pouvez, mais c'est plus idiomatique changer votre façon de penser... Maintenant nous sommes envoi données à des méthodes asynchrones.
Bon Codage!
Vous pouvez trouver vérifier https://flaviocopes.com/axios/#post-requests url et trouver des informations pertinentes dans la section de ce post.