Parse.Promise.as()没有返回Promise

时间:2015-03-18 21:50:06

标签: parse-platform promise

运行后端作业的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');
    }); 
  });
}

1 个答案:

答案 0 :(得分:1)

返回Parse.Promise.as()是正确的路径,因为它是一个已解决的承诺。

错误清楚地表明你的一个承诺是返回false的bool值。追踪并解决问题。