Je travaille avec Mapbox et souhaite afficher l'emplacement en fonction des coordonnées de l'utilisateur via son adresse IP. J'utilise deux API pour ce faire, un pour obtenir l'adresse IP et le second pour obtenir le ...
2 réponses
Vous pouvez attendre que getIP () termine la récupération, puis l'exécuter en utilisant async () dans useEffect
useEffect(() => {
async getData() {
await getIP();
getGeoloc();
}
getData();
}, []);
Oui, il vous suffit d'appeler l'autre API au retour de la première:
const getIP = async () => {
const data = await fetch("https://api.ipify.org/?format=json");
const response = await data.json();
setIp(response.ip);
const getGeoloc = async () => {
const data = await fetch(
`http://api.ipstack.com/${ip}?access_key=${KEY}`
);
const response = await data.json();
setLat(response.latitude);
setLong(response.longitude);
};
};
Désolé si ce code est faux, mon intention était seulement de montrer la logique, je ne programme pas en TypeScript / CoffeScript.
Questions connexes
De nouvelles questions
javascript
Pour des questions concernant la programmation dans ECMAScript (JavaScript / JS) et ses divers dialectes / implémentations (hors ActionScript). Veuillez inclure toutes les balises pertinentes dans votre question; par exemple, [node.js], [jquery], [json], etc.