Я действительно новичок в javascript, и у меня появилась первая проблема с запросом jquery и AJAX. У меня есть много переключателей на странице, и когда я нажимаю на них, я должен попросить службу REST запросить, могу ли я или нет. Если я могу, я покажу окно с предупреждением, вы уверены, что blablabla и если не предупреждение, которое говорит, что пользователь не может.jquery (a) синхронный запрос ждать
Вот основная проблема: если я использую async: false, это работает, но поскольку я мог читать, это не очень хорошая практика (и хром помнит меня, а это не так), так что это хороший способ сделать это?
Я использую магистраль, и я не хочу, чтобы каждый переключатель настраивал метод обработки щелчка и второй метод обработки обратного вызова.
Каков хороший способ сделать это?
startService: function(serviceName){
var confirm = true;
var $paid = this.model.getPaidTo(serviceName);
console.log(this.model.getPaidTo(serviceName));
//Here the consol.log is always undefined if I use async: true
if ($paid == 'false'){
confirm = confirm("Are you sure to start" + this.model.services[serviceName].price + ". Continue ?");
}
if(confirm){
console.log("start " + serviceName + " service")
return true;
}
return false;
},
Модель:
getPaidTo: function(serviceName){
var self = this;
var Url = require.apiUrl + "profile/girl/" + this.loginModel.id + "/checkservice/" + serviceName;
$.ajax({
type: "GET",
url: Url,
data: {},
success: function(data){
return data.data.service;
},
error: function(data){
self.error = 'error';
return 'error';
}
});
}
С наилучшими пожеланиями
Вам необходимо написать асинхронный код. Используйте обещания. – SLaks
http://stackoverflow.com/questions/14220321/how-do-return-the-response-from-an-asynchronous-call – epascarello