gpt4 book ai didi

javascript - 解析云代码保存未执行。

转载 作者:行者123 更新时间:2023-12-03 04:26:06 24 4
gpt4 key购买 nike

我正在为我的 IOS 应用程序编写一段云代码(解析),并注意到每当我尝试保存更新的对象时它都无法工作。如果我删除保存功能,代码会工作并打印出成功响应,但如果我保留它,则会收到错误:

Error Domain=NSCocoaErrorDomain Code=3840“JSON 文本未以数组或对象开头,并且未设置允许片段的选项。” UserInfo={NSDebugDescription=JSON 文本未以数组或对象开头,并且未设置允许片段的选项。}

我已经尝试了很多解决方案,无论它们是什么,如果代码中存在保存函数,则 X 代码调试器仍然会打印上面的错误消息。 (如果没有,则打印成功响应)

这是代码:

Parse.Cloud.define("removeFriend", function(request, response) {
Parse.Cloud.useMasterKey();
var userObjId = request.params.userObjId;
var currentUser = request.params.currentUser;
var query = new Parse.Query(Parse.User);
query.equalTo("objectId", userObjId);
//query.include('Friends');
query.find({
success: function(results){
var friendsArray = (results[0].get("Friends"));
var newFriends = friendsArray.filter(function(x) {return x != currentUser});

results[0].set("Friends", newFriends);
results[0].save();
response.success("THIS IS RESULT" + results[0].get("Friends"));



},
error: function(){
response.error("The user was not successfully removed.");

}
});

});

(我之前创建了一个具有相同错误的类似问题,但从那时起我重做了代码,所以我不想混淆这两个问题。)

最佳答案

保存是异步的,这意味着它们发生在单独的线程中。您将在调用 save() 后立即返回 response.success(),因此保存永远不会在函数终止之前完成。

您有两个选择:向 save() 调用添加成功/错误选项,或使用 Promise。我更喜欢后者,当你掌握了它们的窍门后,它可以使代码更加清晰。

results[0].save().then(
function( success ) {
response.success("THIS IS RESULT" + results[0].get("Friends"));
},
function( error ) {
response.error("There was an error trying to save the object: " + JSON.stringify(error));
}
);

关于javascript - 解析云代码保存未执行。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43711910/

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