javascript - 解析[错误] : success/error was not called (Code: 141, 版本 : 1. 9.0)

标签 javascript objective-c parse-platform httprequest

我正在尝试编写一个云代码功能,该功能将允许我编辑另一个用户的数据,因为我无法在应用程序本身中执行此操作。代码的作用(我应该说是尝试做的,因为我不懂 JS)是使用基于输入的两个对象 ID 的两个单独的查询来获取 User 对象和 Group (我创建的类)对象。这是我的代码

Parse.Cloud.define("addInvite", function(request, response) { 
Parse.Cloud.useMasterKey();

var userID = request.params.user;
var groupID = request.params.group;

var user;
var group;


var userQuery = new Parse.Query(Parse.User);
userQuery.equalTo("objectId", userID);


return userQuery.first
({
    success: function(userRetrieved)
    {
        user = userRetrieved;    
    },
    error: function(error)
    {
        response.error(error.message);
    }
});



var groupObject = Parse.Object.extend("Group");
var groupQuery = new Parse.Query(groupObject);
groupQuery.equalTo("objectId", groupID);


return groupQuery.first
({
    success: function(groupRetrieved)
    {
        group = groupRetrieved;    
    },
    error: function(error)
    {
        response.error(error.message);
    }
});
var relations = user.relation("invited");
relations.add(group);

user.save();
response.success(); 

});

每次执行该方法时都会出现错误: [错误]:未调用成功/错误(代码:141,版本:1.9.0)

谁能帮忙解决这个问题吗?谢谢。

最佳答案

Parse Cloud 中的每个函数都会返回一个 Promise。这还包括您运行以检索某些数据的任何查询函数。显然,在您的代码中,当您执行查询时,您将返回一个 Promise,当查询完成时,该查询会突然结束您的云函数。由于您没有在任何成功 block 中调用 response.success()response.error(),因此您的云函数返回时没有设置合适的响应,这会导致解析需要,因此会出现错误。您的代码需要链接所有 promise ,以确保您的代码正确执行并在最后一步中返回成功/错误:

Parse.Cloud.define("addInvite", function(request, response) { 

    Parse.Cloud.useMasterKey();

    var userID = request.params.user;
    var groupID = request.params.group;

    var user;
    var group;

    var userQuery = new Parse.Query(Parse.User);
    userQuery.equalTo("objectId", userID);

    userQuery.first().then(function(userRetrieved) {
        user = userRetrieved;     
        var groupObject = Parse.Object.extend("Group");
        var groupQuery = new Parse.Query(groupObject);
        groupQuery.equalTo("objectId", groupID);
        return groupQuery.first();

    }).then( function(groupRetrieved) {
        //group = groupRetrieved;    
        var relations = user.relation("invited");
        relations.add(groupRetrieved);
        return user.save();

    }).then(function() {
        response.success(); 

    }, function(error) {
        response.error(error.message);
    });

});

关于javascript - 解析[错误] : success/error was not called (Code: 141, 版本 : 1. 9.0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33356993/

相关文章:

javascript - 如何在 Spring Boot 中将参数从 Ajax 传递到 RestController

javascript - 如何创建一个使用 4 个图像而不是文本进行导航的 JQuery 内容 slider ?

objective-c - UIView animateKeyframesWithDuration 与标准动画 block 动画不同

objective-c - Objective-C中延迟执行方法的使用

iPhone - 获取指向 CGDataProvider 背后数据的指针?

javascript - 如何使用 parse.com 在终端上读取 console.log

javascript - 初学JS,为什么这个延迟脚本不执行?

javascript - 将值添加到选择并排序

ios - 解析 JSQMessagesViewController 缓存问题

javascript - Parse Web 服务器中的文件系统模块