我是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 ! ");
});
});
答案 0 :(得分:1)
您似乎正在尝试使用系列中的promises,但实际上您可以在您的情况下使用parallel promises。因为每个保存彼此独立。顺便说一下,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.");
});
});