함수는 쿼리가 완료되기 전에 response.success()를 실행하여 취소합니다.
Parse.Cloud.beforeSave("UserRewards", function(request, response) {
var relation = request.object.relation("user");
relation.query().find().then(function(list) {
console.log("looked up relation");
if (list.length > 0) {
var pUser = list[0];
request.object.set("pUser", pUser);
console.log("updated pUser");
}
response.success();
}, function(error) {
console.error("unable to lookup relation");
response.error(error);
});
});
편집가 나는 관계의 속성 포인터 속성을 동기화하고 묻는와 후속 질문을 이해 생각 ... 쉽게 약속과 함께보고, 시도 ...
Parse.Cloud.beforeSave("UserRewards", function(request, response) {
var relation = request.object.relation("user");
relation.query().find({
success: function(list) {
console.log("looked up relation");
if (list.length > 0) {
var pUser = list[0];
request.object.set("pUser", pUser);
console.log("updated pUser");
}
response.success();
},
error: function(error) {
console.error("unable to lookup relation");
response.error(error);
}
});
});
또는 , 그 중 하나만 저장하기 전에 설정된다고 가정합니다. 이것은 관계가 비어 있음을 감지하여 수행 할 수 있습니다. 이 경우, ...
Parse.Cloud.beforeSave("UserRewards", function(request, response) {
var relation = request.object.relation("user");
relation.query().find().then(function(list) {
console.log("looked up relation");
if (list.length > 0) {
var pUser = list[0];
request.object.set("pUser", pUser);
console.log("updated pUser");
return Parse.Promise.as(); // we're done, this will pass nothing to the next step
} else { // the relation is empty, so the user pointer must be set
var pointer = request.object.get("pUser");
return pointer.fetch(); // this will pass the pUser to the next step
}
}).then(function(pUser) {
if (pUser) {
// must have found an empty relation in the last step. add the user pointer to it
request.object.relation.add(pUser);
}
response.success();
}, function(error) {
console.error("unable to lookup relation");
response.error(error);
});
});
(코드가 안된 주) 포인터를 가져 오기 위해 또 하나의 비동기 단계를 수행합니다.
안녕하세요, 귀하의 답변에 감사드립니다. 그것은 트릭을했다. 후속 질문이 있습니다. 관계가 설정되어 있는지 확인하고 설정되지 않은 경우 포인터를 설정하려면 어떻게해야합니까? 그리고 설정되지 않은 경우 관계를 설정하지만 포인터가 설정되어 있습니까? 위의 답변을 자유롭게 수정하십시오. 약속은 좋은 것입니다. – amit
@amit - 최선을 다했습니다. – danh
관계가 nil 인 경우이 작업을 수행합니까? 두 번째 단계에서 – amit