Javascript 解析Cloudcode错误分支需要60秒+;回答:为什么?
我跳转到back4app,运行Parse,到目前为止我已经爱上了它。我正在编写一个简单的云代码,它似乎在每一步都在与我抗争 这个想法是:发送一个通道字符串,通过Parse.Installation进行简单的查找,并在第一个找到的记录中返回一个字段。当找到频道时,它就像一个符咒 问题是:如果找不到记录,则需要60秒以上的时间返回。找到的记录的返回时间通常为一秒钟。我不是javascript大师,尝试了许多变体都没有用,JSLint似乎不想测试Parse.Cloudcode.Define块 问题是:我在这里的结构有多混乱,导致了这种延迟?我根本看不到这个问题。任何想法都是非常受欢迎的:Javascript 解析Cloudcode错误分支需要60秒+;回答:为什么?,javascript,parse-platform,parse-cloud-code,back4app,Javascript,Parse Platform,Parse Cloud Code,Back4app,我跳转到back4app,运行Parse,到目前为止我已经爱上了它。我正在编写一个简单的云代码,它似乎在每一步都在与我抗争 这个想法是:发送一个通道字符串,通过Parse.Installation进行简单的查找,并在第一个找到的记录中返回一个字段。当找到频道时,它就像一个符咒 问题是:如果找不到记录,则需要60秒以上的时间返回。找到的记录的返回时间通常为一秒钟。我不是javascript大师,尝试了许多变体都没有用,JSLint似乎不想测试Parse.Cloudcode.Define块 问题是:
Parse.Cloud.define("test", function(request, response) {
var query = new Parse.Query(Parse.Installation);
query.equalTo("channels", request.params.other);
query.descending("updatedAt");
query.first({
useMasterKey: true,
success: function(installation) {
response.success(installation.get("lastLoginAt"));
},
error: function(error) {
response.error("test");
}
});
});
{useMasterKey的已编辑函数:true…没有看到计时问题的任何更改}没有看到任何明显的问题,我只留下一个我将如何编写它的片段:
Parse.Cloud.define("test", function(request, response) {
var query = new Parse.Query(Parse.Installation);
query.equalTo("channels", request.params.other);
query.descending("updatedAt");
query.first({useMasterKey: true})
.then(function(installation) {
if (installation) {
response.success(installation.get("lastLoginAt"));
} else {
response.error("No installation with channel: " + request.params.other);
}
})
});
我唯一想到的是,您可能需要在mongodb中为“通道”编制索引。其次,我要提到的是,不鼓励使用masterkey,而是将
{useMasterKey:true}
作为查询的第一个参数。我没有那种控制级别,因为back4app在最后管理解析安装。我不得不假设,因为[channels]是正确推送通知的关键,所以索引已经就位。作为以防万一的措施,我将调整代码并运行它。与b4a聊天时,他们建议这可能是错误块的结构,但我尝试了许多样式,但都没有用。谢谢!西丽克斯:你是金色的。这是可行的,我没有解释为什么我的原始代码不可行。60秒的延迟似乎是某个地方的一个深缺陷。我最初有.then结构,但没有.fail块。这确实起到了作用,并有望帮助其他人摆脱困境。谢谢。我的错是,我假设好的块可以工作,只测试了没有找到记录的块。上面的代码在这两种情况下都会产生141,这表明代码本身存在一些错误。唉,我还没看到呢。很明显,我对javascript很差劲;)我甚至把所有东西都撕了下来,只留下一个简单的回程块。返回错误为“无值”的时间超过60秒。有点不对劲。。也许这是back4app的问题?嗯,糟糕透了。我没有使用back4app的经验。Parse.com关闭时切换到heroku+mlabs我用这个url ping了他们,希望他们有机会解决这个问题。141对我来说,因为找不到云函数?另外,我刚刚意识到android上的first
查询总是返回一个肯定的结果。也就是说,不要在没有结果的情况下抛出错误。更新了代码(如果javascript SDK的行为方式相同)