解析云代码函数响应成功不是函数
Posted
技术标签:
【中文标题】解析云代码函数响应成功不是函数【英文标题】:Parse Cloud Code Function Response Success is not a function 【发布时间】:2018-08-29 16:08:09 【问题描述】:我正在尝试从 ios 客户端调用 Parse Cloud 函数,但 response.success() 函数似乎为空。我收到一条错误消息,说 response.success 不是服务器上的函数。
这是我的 Parse Cloud 函数:
Parse.Cloud.define("pruebaQuery", function(request, response)
const query = new Parse.Query("grupo");
query.equalTo("name", request.params.grupoName);
query.find()
.then((results) =>
for (let i = 0; i < results.length; ++i)
var grupoId = results[i].get("grupoId");
console.log("GrupoId: " + grupoId);
response.success("Success pruebaQuery");
)
.catch(() =>
response.error("grupo lookup failed");
);
);
这就是我从 iOS 客户端调用它的方式:
[PFCloud callFunctionInBackground:@"pruebaQuery" withParameters:@@"grupoName": @"Kinder 3"
block:^(NSString *object, NSError *error)
if (!error)
NSLog(@"CLOUDCode/SUCCESS: %@", object);
else
NSLog(@"CLOUDCode/ERROR %@ code: %ld", error, (long)[error code]);
];
response.success() 函数不起作用的任何线索?
【问题讨论】:
您使用的是最新版本的 parse-server (3.0) 吗?他们改变了它,所以没有回应。 就是这样。非常感谢! 这是一个非常显着的变化,会导致很多以前的问题/答案不正确。不过,移植并不广泛,您应该能够弄清楚。云迁移指南:github.com/parse-community/parse-server/blob/master/3.0.0.md JS 迁移指南:github.com/parse-community/Parse-SDK-JS/blob/master/2.0.0.md Parse.Promise 已弃用,取而代之的是原生 Promises + async/await。 【参考方案1】:自解析服务器版本 ^3.0.0 起,云代码不再使用回调。您可以使用 promise 或 async 函数。以下是您应该如何更改云功能。
Parse.Cloud.define("pruebaQuery", async request=>
const query = new Parse.Query("grupo");
query.equalTo("name", request.params.grupoName);
let results;
try
results = await query.find();
for (let i = 0; i < results.length; ++i)
let grupoId = results[i].get("grupoId");
console.log("GrupoId: " + grupoId);
catch(error)
throw error.message;
);
【讨论】:
以上是关于解析云代码函数响应成功不是函数的主要内容,如果未能解决你的问题,请参考以下文章