Javascript Parse.com后台作业云代码无法调用方法';然后';未定义的
我不熟悉cloudcode和javascript,所以promise的概念还不清楚,我正试图上传一个读取级别的文件,并使用后台作业将其保存到类级别,但在下面的代码中,我发现错误,无法调用未定义的“then”方法 我不确定出了什么问题?当您的概念不清楚时,调试是非常困难的,因为它应该是这样的,因此如果有人能够澄清我的解析承诺概念,并帮助解决代码中的上述错误,这将是非常有帮助的Javascript Parse.com后台作业云代码无法调用方法';然后';未定义的,javascript,parse-platform,Javascript,Parse Platform,我不熟悉cloudcode和javascript,所以promise的概念还不清楚,我正试图上传一个读取级别的文件,并使用后台作业将其保存到类级别,但在下面的代码中,我发现错误,无法调用未定义的“then”方法 我不确定出了什么问题?当您的概念不清楚时,调试是非常困难的,因为它应该是这样的,因此如果有人能够澄清我的解析承诺概念,并帮助解决代码中的上述错误,这将是非常有帮助的 Parse.Cloud.job("uploadLevelJob" , function(request , status)
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 ! ");
});
});
看起来你试图在系列中使用承诺,但实际上你可以在你的案例中使用。因为每次保存都是相互独立的。顺便说一下,
i
和result
似乎在代码中没有定义。我假设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.");
});
});
我不熟悉Parse.com
,但是从代码的外观来看,错误来自})。然后(function(){status.success(“Upload!”);})
这是因为\每个方法都不返回值。