原谅我的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;
});
};
另请注意:
答案 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链的末尾而没有任何一个被调用。