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

141
Vistas
Cómo llamar a la función asíncrona que hace una llamada ajax

He visto muchos consejos sobre cómo usar las devoluciones de llamada y esperar con respecto a hacer que mi llamada ajax asíncrona sea síncrona, pero no tengo éxito. tengo un giro. La función que hace la llamada ajax es en sí misma asíncrona. A continuación se muestra mi intento de usar una devolución de llamada. No hay errores, pero no se escribe nada en la consola en el bucle for/. El propósito de esta funcionalidad es solicitar al usuario que seleccione uno o más archivos, importarlos a SSRS y actualizar un control de árbol con nuevos nodos que representen los nuevos archivos. La importación funciona y los datos devueltos por la llamada ajax (la nueva identificación del nodo) son válidos, pero se pierden cuando intento usarlos. Cualquier ayuda será apreciada.

 async function readText(event, multiple, data) { var fileinfo = new Object(); fileinfo.Name = event.name; fileinfo.Path = '/' + fullpath; fileinfo.Replace = !multiple; fileinfo.Id = selectedId; array = new Uint8Array(await event.arrayBuffer()); fileinfo.Content = btoa( new Uint8Array(array) .reduce((data, byte) => data + String.fromCharCode(byte), '') ); $.ajax( { url: '/ABIReportsSSRS/ImportToSSRS', type: 'POST', data: fileinfo, success: function (data) { return data; }, error: function (request, status, error) { displayErrorMessage(request); } }); } function importData(multiple) { input = document.createElement('input'); input.type = 'file'; input.multiple = multiple; var treeviewObj = document.getElementById('tree').ej2_instances[0]; input.onchange = _ => { var newNode = []; for (var i = 0; i < event.target.files.length; i++) { readText(event.target.files.item(i), multiple, function (data) { console.log(data); newNode[i] = { Id: data, Name: event.target.files.item(i).name, Type: 'Resource', Image: '../../images/FA-file.png' } }); } if (multiple) { treeviewObj.addNodes(newNode, selectedId, null); } else { treeviewObj.updateNode(selectedId, event.target.files.item(i).name) } }; input.click(); }
about 4 years ago · Santiago Trujillo
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