【发布时间】:2020-06-22 11:39:28
【问题描述】:
上下文
我正在尝试加载从我的数据库接收到的类似消息数。我通过执行一个可以正常工作并从数据库中获取消息的 AJAX 调用来做到这一点,如下所示:
function getThreads() {
$.ajax({
url: 'includes/index/getForums.php',
type: 'GET',
dataType: 'json',
success: function(data) {
data.forEach(function(item) {
if (item.error == undefined) { //if not empty
let newContent =
//insert content here (I removed it for simplicity's sake)
let appended = $(newContent).appendTo(".threadsContainer");
///start of the code in question
var forumId = $(appended).find(".forum_id").val();
var idUsers = $(appended).find(".idUsers").val();
var checkLike = checkLike(idUsers, forumId);
checkLike.done(function(data) {
console.log(data);
});
//end of the code in question
}
});
}
});
}
从数据库接收到消息后,我想检查每条消息的点赞数,所以我包含一个承诺:
var checkLike = checkLike(idUsers, forumId);
checkLike.done(function(data) {
console.log(data);
});
函数checkLike如下:
function checkLike(idUsers, forumId) {
return $.ajax({
url: 'includes/replyThread/checkLike.php',
type: 'POST',
data: {idUsers: idUsers, forumId: forumId}
});
}
问题
我的问题是,我没有记录数据,而是收到一条错误消息:
Uncaught TypeError: checkLike is not a function
问题
如何更改此代码以便将函数视为函数?我在同一网站的其他页面上使用了类似的代码,它们运行良好。我不确定我是否遗漏了一些简单的东西,或者我是否在某处缺乏理解。有任何想法吗?让我知道是否有任何混淆。谢谢。
【问题讨论】:
-
为什么要同时定义同名的函数和变量?只有一个命名空间,因此您使用相同名称的两次尝试相互冲突。不要那样做,你就不会遇到这样的问题。