javascript 维克斯·维洛|集合查询不返回结果

qvtsj1bj  于 2023-08-02  发布在  Java
关注(0)|答案(1)|浏览(106)

我在我的网站上有一个民意调查,它从用户那里收集了一些信息,并将其保存到一个集合中。现在我需要编写一些代码来显示有多少用户选择了每个选项。我尝试了以下方法,但查询返回的不是请求的数字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。

tktrz96b

tktrz96b1#

我设法找到了解决办法!在这里,如果有人遇到类似的问题。
一件很简单的事情,真的。出于某种原因,如果您使用.count()方法完成提示,它会返回这个奇怪的Promise<>对象,但没有值。但是如果您在之后添加一个.then()方法,它就可以正常工作。另外,调用方法的函数必须是async,并且必须使用await关键字调用。
以下是现在正在运行的方法:

function countOccurences(field, option) {
    
    let number = wixData.query("LiveClassSchedulePoll")
    .contains(field, option)
    .count()
    .then(num => {
        return num;
    })
    
    return number;
}

字符串
这工作得很好,但说实话,我仍然不知道为什么需要.then()来访问查询结果。如果任何 velo Maven有更详细的解释,我很乐意听到它;我也不明白为什么不使用异步编程(在调用方法时使用await关键字)它就不能工作。

相关问题