【发布时间】:2020-07-02 04:59:25
【问题描述】:
我正在将我的 Parse-server 2.0 云功能升级到 3.0。
在 2.0 中工作的功能之一是:
Parse.Cloud.define("countOfObservations", function(request, response) {
var query = new Parse.Query("GCUR_OBSERVATION");
query.count({
success: function(count) {
// The count request succeeded. Show the count
response.success(count);
},
error: function(error) {
response.error("GCUR_OBSERVATION table lookup failed");
}
});
});
由于 Parse-server 3.0 已删除 response 并利用本机承诺或 async/await 进行异步验证。我尝试重写如下函数。
Parse.Cloud.define("countOfObservations", (request) => {
var query = new Parse.Query("GCUR_OBSERVATION");
var countOfObs = 0;
query.count({ useMasterKey: true }).then( (count) => {
countOfObs = count;
console.log("*** count=" + countOfObs);
return new Promise(function(resolve, reject) {
if (countOfObs >= 0)
return resolve(countOfObs);
else
return reject();
})
});
});
当我从客户端调用该函数时,它返回了 {} 而不是我预期的 {"result":2882}。但是,控制台确实打印了 *** count=2882。
如何使用原生 Promise 使函数再次工作?
【问题讨论】:
标签: parse-platform es6-promise parse-server parse-cloud-code