Parse server облачная асинхронная функция не возвращает результат

У меня есть асинхронная функция, которая должна вернуть true или же false но он был выполнен несколько раз в соответствии с журналами, а не один раз и конец, но возвращает i/o failure сообщение об ошибке вместо ожидаемого значения.

Parse.Cloud.define("updateMatch", async (request) => {
    const query = new Parse.Query("Match");
    query.equalTo("league", request.params.league);
    const results = await query.find();

    var match = null;
    if (results.length > 0) {
        match = results[0];
    }else{
          var Match = Parse.Object.extend("Match");
            match = new Match();
            match.set("groupId", request.params.Id);
    }
     match.set("stadium",request.params.stadium);
     var saved = await match.save(null, { useMasterKey: true });
    return true;
});

Когда я изменяю асинхронную функцию на нормальную функцию, она выполняется один раз и возвращает ожидаемое значение, которое true

 Parse.Cloud.define("updateMatch", function(request,response){
        const query = new Parse.Query("Match");
        query.equalTo("league", request.params.league);
        query.find().then((results)=>{
         var match = null;
        if (results.length > 0) {
            match = results[0];
        }else{
              var Match = Parse.Object.extend("Match");
                match = new Match();
                match.set("groupId", request.params.Id);
        }
         match.set("stadium",request.params.stadium);
         match.save(null, { useMasterKey: true });
        return response.success(true);
        });
    });

Это способ, которым я вызываю функцию с Android

val params = HashMap<String, Any>()
    params["league"] = "EPA"
    params["groupId"] = "A"
    params["stadium"] = "Etihad"

    ParseCloud.callFunctionInBackground("updateMatch", params,FunctionCallback { success, e ->
       AppLogger.error("success? ${success} error is ${e?.message}")

      }

В чем может быть проблема с асинхронной функцией?

1 ответ

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

Чтобы обновить все устаревшие модули, включая parse-server, до последних версий, можно использовать команду ниже. -gозначает глобальные модули. его можно не использовать, чтобы обновлять только устаревшие локальные модули

npm i -g npm-check-updates && ncu -u && npm i
Другие вопросы по тегам