Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

282
Views
La función no devuelve valor cuando usa promesa, JavaScript

Tengo muy pocos conocimientos en JavaScript, así que disculpe de antemano esta pregunta.

tengo un metodo:

 function userAgent() { var result = ""; navigator.userAgentData .getHighEntropyValues(["platformVersion"]) .then((ua) => { if (navigator.userAgentData.platform === "Windows") { const majorPlatformVersion = parseInt(ua.platformVersion.split(".")[0]); if (majorPlatformVersion >= 13) { console.log("Windows 11 or later"); result = "Windows 11 or later"; } else if (majorPlatformVersion > 0) { console.log("Windows 10"); result = "Windows 10"; } else { console.log("Before Windows 10"); result = "Before Windows 10"; } } else { console.log("Not running on Windows"); result = "Not running on Windows"; } }); return result; }

Y devuelve una cadena vacía, pero imprime para consolar el valor correcto.

Por favor, dime cuál es mi error y cómo devolver el valor aquí, quiero usarlo después.

¡Gracias!

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Tienes que hacer dos cosas. Primero devuelve la promesa con:

 return navigator.userAgentData.getHighEntropyValues(["platformVersion"]).then(...).

Luego, return el valor deseado desde el controlador .then() . El primer retorno anterior devolverá la promesa de su función. El return dentro del controlador .then() hará que ese valor se convierta en el valor resuelto de la promesa que está devolviendo.

 function userAgent() { return navigator.userAgentData.getHighEntropyValues(["platformVersion"]).then(ua => { if (navigator.userAgentData.platform === "Windows") { const majorPlatformVersion = parseInt(ua.platformVersion.split('.')[0]); if (majorPlatformVersion >= 13) { console.log("Windows 11 or later"); return "Windows 11 or later"; } else if (majorPlatformVersion > 0) { console.log("Windows 10"); return "Windows 10"; } else { console.log("Before Windows 10"); return "Before Windows 10"; } } else { console.log("Not running on Windows"); return "Not running on Windows"; } }); }

Entonces, lo llamarías así:

 userAgent().then(result => { // use the result here console.log(result); });
about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!