我在我的网站上有一个民意调查,它从用户那里收集了一些信息,并将其保存到一个集合中。现在我需要编写一些代码来显示有多少用户选择了每个选项。我尝试了以下方法,但查询返回的不是请求的数字Promise<>
,括号中没有任何值。
该集合包含一周中每一天的选择标记;每天都有很多选择,因此我使用.contains()
方法而不是.eq()
。但是即使我删除了.contains()
过滤器,结果仍然是一样的-- nothing --尽管它应该返回集合中所有条目的数量。
这是查询集合的函数:
function countOccurences(field, option) {
let number = wixData.query("LiveClassSchedulePoll")
.contains(field, option)
.count();
console.log(number);
return number;
}
字符串
这是我正在使用的数据集:x1c 0d1x的数据
我会很感激任何提示;我可能正在做一些非常愚蠢的事情,根本不理解Velo API。
1条答案
按热度按时间tktrz96b1#
我设法找到了解决办法!在这里,如果有人遇到类似的问题。
一件很简单的事情,真的。出于某种原因,如果您使用
.count()
方法完成提示,它会返回这个奇怪的Promise<>
对象,但没有值。但是如果您在之后添加一个.then()
方法,它就可以正常工作。另外,调用方法的函数必须是async,并且必须使用await关键字调用。以下是现在正在运行的方法:
字符串
这工作得很好,但说实话,我仍然不知道为什么需要
.then()
来访问查询结果。如果任何 velo Maven有更详细的解释,我很乐意听到它;我也不明白为什么不使用异步编程(在调用方法时使用await关键字)它就不能工作。