Javascript初学者 - 返回函数

时间:2018-01-11 20:38:36

标签: javascript

我有基本的Javascript知识和关于返回函数的问题。我已经阅读了尽可能多的帖子,但我仍然无法解决我遇到的问题。以下代码计算我拥有的数据库中用户的平均评级。该代码有效,但它没有“返回”评级。它正确计算。如何构造它的语法,以便返回我计算的评级?

function renderRating(applicantId) {    

wixData.query("Project_Applications")
    .eq('_owner', applicantId)
    .eq('orgCompleted', "Yes")
    .find()
    .then(res => {
        if (res.length > 0) {
            let reviews = res.items;
            let stats = reviews.reduce((agg, item) => {                     
                return {
                sum: agg.sum+item.userRating, 
                count: agg.count+1
                };
                }, {sum: 0, count: 0});

        let rating = (Math.round(stats.sum * 2 / stats.count) / 2);     
        return rating;
    }
    });
}

1 个答案:

答案 0 :(得分:2)

您编写的函数执行异步操作:它使用基于Promise的API查询数据库中的数据,这意味着return - ed值不会立即“准备好”。只需返回Promise即可。

function renderRating(applicantId) {
  return wixData.query("Project_Applications") // ...
}

现在你的函数返回一个Promise,这意味着当你想在某个地方使用它时,你必须使用.then(() => { ... })