"失败:未调用成功/错误"当试图在Parse中返回httpResponse时

时间:2014-08-29 23:26:43

标签: javascript parse-platform promise

原谅我的JS / Parse newbieness。

我正在尝试使用Promises在常规函数中执行Parse HTTP请求(我尝试了非承诺方式也无济于事)。对于我的生活,我无法获得httpResponse.text。下面的代码导致“失败:未调用成功/错误”。

我很确定这里有不止一个问题,也许我的方法还有待办法。另请注意,console.log(“FML”)将打印在日志中,但是console.log(“response is”+ httpResponse.text);不是。

function getTweets(team) {

    // some code and the params for the http request

    Parse.Cloud.httpRequest({
        method: 'GET',
        url: THE_URL,
        headers: {
                 SOME_HEADER_PARAMS
        },
        body: {
        }}).then(function(httpResponse) {
             console.log("FML");
             console.log("response is " + httpResponse.text);
             return httpResponse.text;
        }).then(function(error) {
             return error;
        });
    }; 

另请注意:

  • console.log(“FML”)打印在日志中但是console.log(“响应 是“+ httpResponse.text”;不是。我的HTTP状态为200 HTTP请求似乎没问题

2 个答案:

答案 0 :(得分:1)

Parse使用不同的语法来处理promises错误。您的承诺链应如下所示:

Parse.Cloud.httpRequest({...})
    .then(function(httpResponse) {
        console.log("FML");
        console.log("response is " + httpResponse.text);
        return httpResponse.text;
    }, function(error) {
        return error;
    });

另请注意,大多数promise表都不使用then来解决错误。他们通常使用catch进行错误处理。

答案 1 :(得分:1)

success/error was not called是一个常见错误,如果您的Cloud功能无法调用response.success()response.error(),您就会看到该错误。您的代码中的错误似乎位于您提供的示例之外,因为很可能您的函数到达Promise链的末尾而没有任何一个被调用。