Parse Cloud Code Функция Ответ Успех не является функцией

Я пытаюсь вызвать функцию 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 ответ

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

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

});
Другие вопросы по тегам