0
解析運行後端作業的Javascript SDK問題。Parse.Promise.as()沒有返回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');
});
});
}
錯誤意味着myFunction返回false,並且調用者正試圖調用then()。有可能您的somePromise()或someOtherPromise()函數實際上返回false而不是promise?這似乎是如此。 Parse.Promise.as()。然後()應該工作得很好。 – danh 2015-03-18 22:03:04
你可以發佈該異常的堆棧跟蹤嗎? – Bergi 2015-03-18 22:05:26
'返回Parse.Promise.as(dummmyresult);'應該是要走的路。 – Bergi 2015-03-18 22:07:08