Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

83
Vistas
Envío de parámetros de diferentes funciones a una función
 function layerQuery(objectId) { const featureLayer = view.map.layers.getItemAt(0); const queryParams = featureLayer.createQuery(); queryParams.where = "objectid=" + objectId; queryParams.outFields = ["x", "y", "z"]; featureLayer.queryFeatures(queryParams).then(function (results) { const coords = results.features[0].attributes; direction_lookup(Promise, Promise,coords.x,coords.y) }); const objectIdNext = objectId + 1 const queryParamsTb = featureLayer.createQuery(); queryParamsTb.where = "objectid=" + objectIdNext; queryParamsTb.outFields = ["x", "y", "z"]; featureLayer.queryFeatures(queryParamsTb).then(function (results) { var coordstb = results.features[0].attributes; direction_lookup(coordstb.x, coordstb.y,Promise,Promise) }); //console.log(coordstb.x) }

Quiero enviar los cuatro parámetros que obtuvimos como resultado de las dos funciones anteriores a la siguiente función.

 function direction_lookup(destination_x, origin_x, destination_y, origin_y) { var compass_brackets, compass_lookup, degrees_final, degrees_temp, deltaX, deltaY; deltaX = destination_x - origin_x; deltaY = destination_y - origin_y; degrees_temp = Math.atan2(deltaX, deltaY) / Math.PI * 180; if (degrees_temp < 0) { degrees_final = 360 + degrees_temp; } else { degrees_final = degrees_temp; } compass_brackets = ["N", "NE", "E", "SE", "S", "SW", "W", "NW", "N"]; compass_lookup = Math.round(degrees_final / 45); return [compass_brackets[compass_lookup], degrees_final]; } console.log(direction_lookup(destination_x, origin_x, destination_y, origin_y));

La función de 'búsqueda de dirección' toma cuatro parámetros. Quiero enviar estos cuatro parámetros de dos en dos desde diferentes funciones. Puedo hacer esto

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Lo que está tratando de hacer no es posible porque su función direction_lookup necesita que esos cuatro parámetros sean las coordenadas numéricas, no espera ver ningún objeto Promise ni resolverlo. La forma estándar de hacer esto es esperar hasta conocer todos los valores antes de llamar a la función, así:

 function layerQuery(objectId) { const featureLayer = view.map.layers.getItemAt(0); const queryParams = featureLayer.createQuery(); queryParams.where = "objectid=" + objectId; queryParams.outFields = ["x", "y", "z"]; featureLayer.queryFeatures(queryParams).then((results) => { const feature1Coords = results.features[0].attributes; const objectIdNext = objectId + 1 const queryParamsTb = featureLayer.createQuery(); queryParamsTb.where = "objectid=" + objectIdNext; queryParamsTb.outFields = ["x", "y", "z"]; featureLayer.queryFeatures(queryParamsTb).then((secondResults) => { const feature2Coords = secondResults.features[0].attributes; direction_lookup(feature2Coords.x, features2Coords.y,feature1Coords.x,feature1Coords.y); }); }); }

Ahora realiza su primera consulta y mantiene los resultados dentro del alcance mientras realiza la segunda consulta y finalmente llama a direction_lookup cuando tiene ambos conjuntos de coordenadas listos para funcionar.

Las funciones de flecha se comportan como funciones normales, pero mantienen el alcance principal, lo que puede ahorrar mucha confusión, por lo que para este tipo de tareas es una notación un poco más conveniente.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda