Hola, por qué su respuesta "la devolución de llamada no está definida"
componente 1:
console.log(getUserGps());componente 2:
import $ from 'jquery' export const getUserGps = () => { $.ajax({ url: "https://geolocation-db.com/jsonp", jsonpCallback: "callback", dataType: "jsonp", success: function(location:any) { let city = location.city console.log('Pobrano z gps ' + location.city) return city } }) }jsonpCallback: "callback",
Usted le dijo explícitamente a jQuery que le diga al servidor que genere un programa JSONP que llame a una función llamada callback .
No definiste esa función.
Elimina esa línea. Deje que jQuery genere la función a partir de la propiedad de success con un nombre automático en su lugar.
El problema que tiene aquí es que su función aync no tiene valor de retorno. Lo que podrías hacer es lo siguiente:
const getUserGps = () => { return $.ajax({ url: "https://geolocation-db.com/jsonp", jsonpCallback: "callback", dataType: "jsonp", }).then((location) => { return location.city }) }Aquí devuelve la solicitud como una promesa y luego puede hacer lo siguiente en su segundo componente:
getUserGps().then(data => { console.log(data); })Aquí tienes más información sobre cómo funcionan las funciones asíncronas y las promesas: https://www.w3schools.com/Js/js_promise.asp