Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

185
Visualizações
Los valores globales no funcionan, no se puede obtener valor desde dentro de la función. Tratando de hacer que los valores (velocidad del viento, etc.) estén disponibles fuera de la función

Atrapado en esto durante un par de días, todavía nuevo en JS. Estoy tratando de hacer que los valores de la variable desde dentro de la función estén disponibles fuera de la función. He intentado usar global_this y no funciona. Los valores aparecen bien en el registro de la consola y en el HTML interno; sin embargo, cuando trato de usarlos en cualquier otro lugar, no estoy definido.

 enter code here function x() {fetch('http://api.openweathermap.org/data/2.5/weather? lat=33.778726&lon=-118.377751&appid=c8ba55aeb3b4aeb0add9badde352f0df&units=imperial') .then( response => response.json()) .then( data => openweather(data)) .catch( err => console.log(err)) console.log("hack") function openweather(data) { swamprat = Object.values(data) windspeed = data.wind.speed; winddegree = data.wind.deg; airtemp = data.main.temp; airpressure = data.main.pressure; knots= (windspeed * 0.868976); windspeed = parseInt(windspeed); winddegree = parseInt(winddegree); airtemp = parseInt(airtemp); airpressure = parseInt(airpressure) knots= parseInt(knots); console.log("Wind Speed: " + windspeed) console.log("Wind Direction: " + winddegree) console.log("Temperature: " + airtemp) console.log("Air Pressure: " + airpressure) console.log("Knots: " + knots); document.getElementById("windspeedx").innerHTML = [windspeed] document.getElementById("winddirectionx").innerHTML = [winddegree] document.getElementById("airtemperaturex").innerHTML = [airtemp] document.getElementById("airpressurex").innerHTML = [airpressure] document.getElementById("knotsx").innerHTML = [knots] } } console.log(windspeed) x() setInterval(x,15000)
about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Hice una reescritura rápida de tu ejemplo.

Las funciones anidadas pueden meterte en problemas, las separé.

Para que las variables sean accesibles, simplemente las declaré fuera de la función.

Su función se ejecuta, pero no da resultados inmediatamente, si desea acceder a las variables, obtendrá 'indefinido' hasta que lleguen los resultados. Si realmente necesita esperar el resultado, debe hacerlo en la función asíncrona especial.

 let windspeed; let winddegree; let airtemp; let airpressure; let knots; function openweather(data) { windspeed = data.wind.speed; winddegree = data.wind.deg; airtemp = data.main.temp; airpressure = data.main.pressure; knots= (windspeed * 0.868976); windspeed = parseInt(windspeed); winddegree = parseInt(winddegree); airtemp = parseInt(airtemp); airpressure = parseInt(airpressure) knots= parseInt(knots); console.log("Wind Speed: " + windspeed) console.log("Wind Direction: " + winddegree) console.log("Temperature: " + airtemp) console.log("Air Pressure: " + airpressure) console.log("Knots: " + knots); document.getElementById("windspeedx").innerHTML = [windspeed] document.getElementById("winddirectionx").innerHTML = [winddegree] document.getElementById("airtemperaturex").innerHTML = [airtemp] document.getElementById("airpressurex").innerHTML = [airpressure] document.getElementById("knotsx").innerHTML = [knots] } async function x(){ await fetch('https://api.openweathermap.org/data/2.5/weather?lat=33.778726&lon=-118.377751&appid=c8ba55aeb3b4aeb0add9badde352f0df&units=imperial') .then( response => response.json()) .then( function(data){ openweather(data); setTimeout(x,15000); }) .catch( err => console.log(err)); } async function start(){ await x(); console.log( "TEST: " + windspeed ); } start();

si no necesita esperar variables, puede usar:

 function x(){ fetch('https://api.openweathermap.org/data/2.5/weather?lat=33.778726&lon=-118.377751&appid=c8ba55aeb3b4aeb0add9badde352f0df&units=imperial') .then( response => response.json()) .then( function(data){ openweather(data); setTimeout(x,15000); }) .catch( err => console.log(err)); } x(); console.log( "TEST: " + windspeed ); // will get undefined at first
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda