【发布时间】:2015-01-18 13:25:02
【问题描述】:
最近几天刚开始解析,想知道是否有人知道我的问题是什么。我正在尝试创建一个后台作业,该作业从外部服务器检索字符串列表,然后遍历该列表,使用 can 函数保存包含这些字符串的对象。服务器返回一个包含 20 个项目的列表,但只保存了 9 个对象。更奇怪的是,似乎甚至没有为 i 调用保存对象的函数
这是我的代码:
var MyObject = Parse.Object.extend("MyObject");
Parse.Cloud.job("getNew", function (request, status) {
// Set up to modify user data
Parse.Cloud.useMasterKey();
var newObjects;
Parse.Cloud.httpRequest({
url: 'myURL',
success: function (httpResponse) {
newObjects = httpResponse.data;
var arrayLength = newObject.length;
console.log('got ' + newObjects.length + ' new Objects');
for (var i = 0; i < arrayLength; i++) {
console.log('saving Object ' + newTopics[i]);
Parse.Cloud.run('saveObject', {
name: newObjects[i]
}, {
success: function (message) {
console.log(message);
},
error: function (error) {
console.log(error);
}
});
}
status.success("New Objects Added.");
},
error: function (httpResponse) {
console.error('Request failed with response code ' + httpResponse.status);
status.error('Request failed with response code ' + httpResponse.status);
}
});
});
Parse.Cloud.define("saveObject", function (request, response) {
var query = new Parse.Query("Review");
var name = request.params.name;
var object = new MyObject();
object.set("name", name);
object.set("nameLowerCase", name.toLowerCase());
console.log('saving the object ' + object.get("name"));
object.save(null).then(
function (object) {
response.success('New object created with objectId: ' + object.get("name"));
},
function (error) {
console.log('Failed to create new object, with error code: ' + error.message);
});
});
我的作业日志输出显示,甚至没有为未保存的项目调用 saveObject 函数,即使在调用这些项目的保存对象调用之前行上的控制台日志语句确实被记录了。
感谢阅读本文的任何人,我非常感谢您的帮助。
【问题讨论】:
-
我找到了一种使用 Parse.Object.saveAll() 保存所有项目的方法。我仍然不明白我以前的方法不起作用,但也许我应该用这个作为答案。
-
您应该只使用
Parse.Object.saveAll或每个toSave 对象需要2 个请求(Parse.cloud.run和object.save)来保存以前的方法。
标签: parse-platform parse-cloud-code