Если вы вернетесь внутрь обещания .then(function(){return 'a'}) the
верните 'a' does not return the
async (request) `!
Если вы сделаете
Promise.resolve()
.then(function(){return 'a'}) // this 'a' does not go to any parent function!
.then(function(val){console.log(val)}) // it goes here!
, вы увидите «a» в своем журнале, в качестве простой иллюстрации.
Вы можете переключить его на асинхронное / ожидание
Parse.Cloud.define("getLastWeightForAnimal", async (request) => {
try {
var AnimalProfiles = Parse.Object.extend("animal_profiles");
var query = new Parse.Query(AnimalProfiles);
var animalProfile = await query.get(request.params.id)
var AnimalWeights = animalProfile.relation("weights").query();
AnimalWeights.descending("createdAt");
let result = await AnimalWeights.first();
return result;
} catch (e) {
console.log("Uh Oh");
console.log("Error: "+ e);
}
});
ИЛИ просто верните обещание, которое, поскольку вы используете async
, автоматически вернет значение обещания.
Parse.Cloud.define("getLastWeightForAnimal", async (request) => {
try {
var AnimalProfiles = Parse.Object.extend("animal_profiles");
var query = new Parse.Query(AnimalProfiles);
// note new return!!
return query.get(request.params.id).then((animalProfile) => {
var AnimalWeights = animalProfile.relation("weights").query();
AnimalWeights.descending("createdAt");
let result = await AnimalWeights.first();
return result;
}, (error) => {
// The object was not retrieved successfully.
// error is a Parse.Error with an error code and message.
console.log("Uh Oh Inner");
console.log("Error Inner: "+ error);
});
} catch (e) {
console.log("Uh Oh");
console.log("Error: "+ e);
}
});