我运行hello作业,但Select函数返回空值。
我使用Parse.Cloud.define
调用Select函数,结果有值。
hello作业中的Query.find
具有价值。
请帮我弄清楚。
Parse.Cloud.job("hello", function(request, status) {
var Query = new Parse.Query("yee");
Query.equalTo("PushTime", NowTime);
Query.find({
success: function(results) {
for (var i = 0; i < results.length; i++) {
var tp = results[i];
alert("a");
var mresult = Select(tp.get("ID"));
alert("aa" + mresult);
if (mresult != "error" || mresult != "undefined") {
InstallationQuer = new Parse.Query(Parse.Installation);
InstallationQuer.equalTo("NO", tp.get("No"));
Parse.Push.send({
where: InstallationQuer,
data: {
alert: mresult
}
});
} else {
console.error("error");
status.error("error");
}
}
console.log("success promise!!")
status.success("success promise!!");
},
error: function(error) {
console.error("Promise Error: " + error.message);
status.error("error");
}
});
});
function Select(ID) {
var a = "";
var Query = new Parse.Query("Meeting");
alert(ID);
Query.equalTo("ID", ID);
Query.find({
success: function(results) {
for (var i = 0; i < results.length; i++) {
a = results[i].get("Details");
}
return a;
},
error: function(error) {
return "error";
}
});}
答案 0 :(得分:0)
您同步调用Select
函数 ,因此它会在Query.find
有机会完成之前返回,因为它是异步函数。让您的函数返回Promise
,并等待该承诺得到满足,然后再进一步处理结果。