Я создаю систему комментариев на моей CMS на базе Laravel.Функция Javascript не возвращается правильно
Логика, над которой я сейчас работаю, когда удаляется комментарий, я запускаю вызов ajax, чтобы проверить, сколько комментариев есть, и если комментариев больше нет, тогда я покажу сообщение «Нет комментариев».
У меня все работает, но последняя часть.
Моя функция всегда возвращается не определена.
Функция:
function checkCommentCount($id){
var rootAsset = $('.rootAsset').html();
$.ajax({
url: rootAsset+'postcommentcount/'+$id,
type: 'post',
cache: false,
dataType: 'json',
data: $(this).serialize(),
success: function(data) {
if (data.success) {
//return +data.count;
console.log(data.count);
}
},
error: function(xhr, textStatus, thrownError) {
alert('Something went to wrong.Please Try again later...');
}
});
}
Это правильно регистрирует переменную счетчика возвращается через JSON. Итак, PHP-сторона в порядке.
Однако, если попытаться запустить функцию в другом месте:
console.log(checkCommentCount(1648));
Он всегда возвращает неопределенное значение. Мне нужно, чтобы функция возвращала числовое значение, чтобы я мог выполнить свою проверку.
Бревно консоль отлично работает в функции, но если я изменю, что:
return data.count;
Тогда функция возвращает неопределенное ...
Любые идеи?
Добро пожаловать в асинхронный javascript, держись, позволь мне найти обманщика. – Jamiec
Он будет возвращен undefined, так как запрос ajax будет задерживаться всегда, используйте библиотеку 'q', чтобы справиться с ней [Q] (http://stackoverflow.com/questions/10642459/i-need-some-help-promises-and- q-library) – Saqueib
Ваша функция всегда будет возвращать 'undefined', поскольку вы ничего не возвращаете. Хотя я уверен, что это будет не единственная проблема. – Xotic750