Estoy tratando de omitir una iteración de bucle basada en la respuesta ajax. El problema al que me enfrento es que no puedo usar la respuesta de Ajax fuera de la llamada de Ajax. Actualmente lo resolví usando la solución a continuación, pero aquí el problema es que estoy usando async: false , que no se recomienda ya que la llamada Ajax es asíncrona.
function ajaxCallHere(name) { let url = '/admin/someUrl/' + name; var skipName = ''; $.ajax({ 'url': url, 'type': 'GET', async: false, 'success': function (data) { skipName = data.skip; } }); return skipName; } function getAllNames() { for (let i = 0; i < names.length; i++) { var skipVal = ajaxCallHere(names.fullName); if(skipVal == 'yes') { continue; } } }Usa async/await , ya que $.ajax devuelve un objeto que obedece al protocolo Promise.
function ajaxCallHere(name) { let url = '/admin/someUrl/' + name; return $.get(url); } async function getAllNames() { for (let i = 0; i < names.length; i++) { var data = await ajaxCallHere(names.fullName); if (data.skipVal == 'yes') { continue; } } }