Функция Parse Cloud Code Response Успех не является функцией - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь вызвать функцию Parse Cloud из iOS-клиента, но функция 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 () не работает?

1 Ответ

0 голосов
/ 14 сентября 2018

Начиная с версии parse-сервера ^ 3.0.0, облачные коды больше не используют обратные вызовы. Вы можете использовать обещание или асинхронные функции. Вот как вы должны изменить свою облачную функцию.

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;
    }

});
...