Я нашел поведение, которое вызывает у меня проблемы с JavaScript. У меня есть две функции:продолжить цикл for после выполнения функции JavaScript
var show_uploaded = function(data_photo)
, который получает информацию о загруженных фотографий в качестве параметра,
function exif_like(path){/*working with my image*/ console.log('exif_like END'); }
, которая получает путь к каждому одной загруженной фотографии в качестве параметра.
Я сделал такой код:
var show_uploaded = function(data_photo){
for(var z = 0; z < data_photo.length; z++){
var send_image_name = uploaded_photo[z].name;
$.ajax({
data: { compare : send_image_name },
url: 'get_panorama.php',
method: 'POST', // or GET
success: function(path){
exif_like(path);
console.log('FOR LOOP END');
}
});
}
};
Но что я вижу в консоли является то, что «FOR LOOP END» Журнал отображается перед тем журнал «exif_like END». И это вызывает некоторое непредсказуемое поведение в моем коде.
Есть ли какое-либо решение, как продолжить цикл после выполнения функции exif_like()?
Ну, вы получите несколько журналов «для конца цикла», так как они находятся внутри цикла 'for'. Вы уверены, что не видите одного из них перед другим «exif end» - они все равно должны появляться попарно? –
Можем ли мы увидеть больше содержимого 'exif_like'? Вы используете внутри нее методы async? –
Например, когда я загружаю 3 фотографии, konsole печатает: «FOR LOOP END», «FOR LOOP END», «FOR LOOP END», «exif_like END», «exif_like END», «exif_like END» .. и они должны по-прежнему появляются в парах: «exif_like END», «FOR LOOP END», «exif_like END», «FOR LOOP END», «exif_like END», «FOR LOOP END» –