Помогите разобраться как можно прервать цикл и при этом вернуть результат функции внутри цикла.
Но есть нюанс: в цикле вызов функции в которой в свою очередь асинхронный ajax запрос и собственно callback
Вот не получается прервать цикл когда результат не пустой.
function sample(arr) {
var results;
searching:
for (let i = 0; i < arr.length; i++) {
results = searchingIdByName(arr[i], code, function(results) {
if (results !== undefined && results.id !== undefined) {
return results;
}
});
//тут всегда results undefined
if (results !== undefined && results.id !== undefined) {
console.log(results);
break searching;
}
}
}
function searchingIdByName(param, code, callback) {
$.ajax({
url: "...",
dataType: 'jsonp',
type: "GET",
delay: 250,
data: {q: param },
success: function(data) {
let results = data;
return callback(results);
}
});
}