Estoy tratando de agregar elementos de matriz a la lista usando el siguiente código:
function GetList() { let list = []; $.ajax({ url: '../Lookup/GetList', type: 'GET', cache: true, dataType: "json", success: function (response) { debugger; list = response; //for (var data in response) { // list = { value: data, rest: list }; //} //for (let i = response.length - 1; i >= 0; i--) { // list = { value: array[i], rest: list }; //} //for (let i = response.length - 1; i >= 0; i--) { // list.push(response[i]); //} } }); return list; }He adjuntado la captura de pantalla del formato de datos de matriz. Necesito en el siguiente formato de lista:
var list= [ { "id": "1", "LookupMasterName": " Source1", "Description": "xxx", "Enabled Flag":"Y" }, { "id": "2", "LookupMasterName": " Source2", "Description": "yyy", "Enabled Flag": "Y" } ];El código anterior no funciona. Devuelve una lista vacía. ¿Puede usted ayudar?
Está devolviendo una lista vacía porque esta línea return list; se ejecuta antes de que se complete Ajax. Una solución para solucionarlo es envolver su solicitud de Ajax en una Promesa :
Ejemplo:
function GetList() { let list = []; return new Promise((resolve) => { $.ajax({ url: "../Lookup/GetList", type: "GET", cache: true, dataType: "json", success: function (response) { list = response; resolve(list); }, }); }); } Luego llamando a GetList :
GetList().then(list => /* do whatever you need */)