解析云代码函数响应成功不是函数

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;
    

);

【讨论】:

以上是关于解析云代码函数响应成功不是函数的主要内容,如果未能解决你的问题,请参考以下文章

解析云代码嵌套查询时未调用代码 141 成功/错误消息

解析后保存云函数返回成功结果但不执行成功函数

Angular 和 Firebase 云函数返回 null

解析云代码无效函数被调用

如何在解析服务器上创建和调用云代码函数?

解析云代码 query.withinKilometers