Это очень распространенная проблема.если мы ожидаем, что что-то должно быть сделано после завершения запроса ajax.поместите это в метод успеха ajax или сделайте запрос ajax асинхронным.или вы можете использовать отложенное обещание.
пример асинхронного запроса,
$('#back').click(function(e) {
var isSelected = false;
var bf = {};
isSelected = confirm("Do you want to ?");
if (isSelected == true) {
$.ajax({
type: "POST",
async:false,
url: "/pages/test/",
success: function(result) {
bf = data;// now our bf is available inside a function
},
error: function(result) {
alert('error');
}
});
//do whatever you want to do with bf.
}
для отложенного обещания, пожалуйста, посетите this