运行后端作业的Parse Javascript SDK出现问题。
我有一个函数,根据条件返回不同的promise。在没有满足任何条件的情况下,我想要返回一个"虚拟"承诺没有做任何事情:
function myFunction() {
if (condition1)
return somePromise();
else if (condition2)
return someOtherPromise();
else
return ???
}
我尝试返回Parse.Promise.as()
,但是当这两个条件都不满足时会失败:
E2015-03-18T21:31:50.410Z] v41: Ran job checkup with:
Input: {}
Failed with: TypeError: Object false has no method 'then'
at jobs/checkup.js:18:73
at null.<anonymous> (Parse.js:3:19012)
at e (Parse.js:2:6670)
at Parse.js:2:7423
at g (Parse.js:2:7160)
at c.extend.then (Parse.js:2:7408)
at Parse.js:3:18989
at Array.forEach (native)
at Function.x.each.x.forEach (Parse.js:1:661)
at Parse.js:3:18966
编辑:以下是调用该函数的位置:
function checkup() {
return Parse.Cloud.job("checkup", function(request, status) {
var query = new Parse.Query(Parse.User);
query.equalTo("active", true);
query.each(function(user) {
return myFunction().then(function() {
return user.save();
});
}).then(function() {
status.success('success');
});
});
}
答案 0 :(得分:1)
返回Parse.Promise.as()
是正确的路径,因为它是一个已解决的承诺。
错误清楚地表明你的一个承诺是返回false
的bool值。追踪并解决问题。