Parse.com背景作业云代码无法调用未定义的方法'then'

时间:2014-11-08 04:11:02

标签: javascript parse-platform

我是cloudcode和javascript的新手,所以承诺概念仍然不明确,我正在尝试上传读取级别文件并使用后台作业将其保存到类级别,但在下面的代码中我收到错误无法调用方法&# 39;然后'未定义的

我不确定哪里出错了?当你的概念不清楚时,它很难调试,所以如果有人可以清除我的Parse承诺的概念并且在这段代码中帮助解决上述错误,那将会很有帮助。

Parse.Cloud.job("uploadLevelJob" , function(request , status){
    var Levels= Parse.Object.extend("Levels");
    var levels= request.params.arrayOfLevels;
    var promise = new Parse.Promise.as();
    _.each(levels , function(level){
        promise = promise.then(function() {
            var tempObj = new Levels();
            tempObj.set("levelId",parseInt(level[i][0]));
            tempObj.set("levelName",level[i][1]);
            return result.save();          
        });
        return promise;
    }).then(function(){
        status.success("Uploaded ! ");  
    });

});

1 个答案:

答案 0 :(得分:1)

您似乎正在尝试使用系列中的promises,但实际上您可以在您的情况下使用parallel promises。因为每个保存彼此独立。顺便说一下,iresult似乎未在您的代码中定义。我假设levels是一个类似[[levelId, "levelName"], ...]

的数组
var Levels = Parse.Object.extend("Levels");

Parse.Cloud.job("uploadLevelJob" , function(request , status){
  var levels = request.params.arrayOfLevels;

  var promises = [];
  _.each(levels , function(level) {
    var tempObj = new Levels();
    tempObj.set("levelId",parseInt(level[0]));
    tempObj.set("levelName",level[1]);
    promises.push(tempObj.save());
  });

  return Parse.Promise.when(promises).then(function() {
    status.success("Migration completed successfully.");
  }, function(error) {
    status.error("Uh oh, something went wrong.");
  });

});