gpt4 book ai didi

javascript - 解析云函数失败,出现错误 141

转载 作者:行者123 更新时间:2023-11-29 02:49:31 25 4
gpt4 key购买 nike

我想要完成的是当我调用这个云函数 (deploy) 时,它会首先删除 toClass 中的所有数据,然后迭代 中的对象code>fromClass,复制保存到toClass。当它保存一个对象时,它也会从 fromClass 中删除它。简而言之,将对象从一个类移动到另一个类。在客户端调用此函数

[PFCloud callFunctionInBackground:@"deploy" withParameters:@{@"toClass": kTilrClassUpdates, @"fromClass": kTilrClassPrototypeUpdates} block:^(id object, NSError *error) {
if (error) {
[self failed];
} else {
[self succeeded];
}
}];

将此错误消息打印到客户端日志:Error: undefined (Code: 141, Version: 1.2.19)

这是 Parse Cloud 的代码:

Parse.Cloud.define("deploy", function(request, response) {
var query = new Parse.Query(request.params.toClass);
query.find({
success: function(results) {
for (var i = 0; i < results.length; ++i) {
console.log(results[i]);
results[i].destroy({
success: function(object) {

},
error: function(object, error) {
response.error(error);
}
});
}
},
error: function() {
response.error(error);
}
});
var query2 = new Parse.Query(request.params.fromClass);
query2.find({
success: function(results) {
for (var index = 0; index < results.length; ++index) {
var UpdateInfoClass = Parse.Object.extend(request.params.toClass);
var updateInfo = new UpdateInfoClass();
for (var k in results[index]) {
updateInfo.set(k, results[index][k]);
}
console.log(updateInfo);
updateInfo.save(null, {
success: function(updateInfo) {
results[index].destroy();
if (index == results.length - 1) {
response.success();
}
},
error: function(updateInfo, error) {
response.error(error);
}
});
}
},
error: function() {
response.error(error);
}
});
});

我真的不太了解 JavaScript,所以这可能是某个地方的一个非常简单的错误。

最佳答案

有几个部分可以保证为您解决问题:不质疑您的设计:

1) 查询没有链接在一起,将同时运行

2) 你不能使用

for (var k in results[index]) {
updateInfo.set(k, results[index][k]);
}

将属性从一个对象复制到另一个对象。您需要调用 JSON.stringify(results[index]) 来获取标准数组。您应该通过 request.object.set(fiedlName, value) 来设置值。

3) “索引”不会正确地传播到子 block 中 - 将它登录到控制台中,您会看到,因为这些查询也没有链接起来,它会立即运行,因此索引会有一些值(value)或最后一个因为它很快

但是,您的方法设计有问题:

parse 上的数据库与普通的 sql 数据库有点不同,您也许应该重新设计您的方法,也许使用一个类并仅按名称标记对象的类或更改其状态(已部署 = 0/1),这很难猜测你想完成什么,但你的方式肯定会出现一些问题。

另请注意,云代码函数确实有一些超时,因此一旦您拥有更多对象,您可能无法保存所有对象。 (150个对象是乐观的看法)

您可以通过编写适当的“.beforeSave”函数来实现您的解决方案,该函数在您保存对象时触发,这样您就可以根据您的标准用新对象替换旧对象...

关于javascript - 解析云函数失败,出现错误 141,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24723358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com