2016-09-11 17 views
0

我试图做解析以下返回的东西:如何创建解析服务器云功能通过一个HTTP请求

创建可调用的HTTP请求,然后云函数返回这个云功能来自http请求的响应,这样做的正确方法是什么,因为我正在接受这种方法的错误,我认为我正在以错误的方式使用promise。

Parse.Cloud.define('test_function', function(req, res){ 
 
    var myData = {} 
 

 
    Parse.Cloud.httpRequest({ 
 
     method: 'POST', 
 
     url: 'http://dummyurl', 
 
     headers: { 
 
     'Content-Type': 'application/json;charset=utf-8' 
 
     }, 
 
     body: { 
 
     some_data : "test_data" 
 
     } 
 
    }).then(function(httpResponse) { 
 
     console.log(httpResponse.text); 
 
     myData = httpResponse.data; 
 

 
    }, function(httpResponse) { 
 
     console.error('Request failed with ' + httpResponse.status); 
 
     res.error("Request failed"); 
 
    }); 
 
    
 

 
res.success(myData); 
 
});

+0

我想你必须在promise中添加res.success()行......因为你的当前代码在http返回任何东西之前结束函数... –

回答

2

,因为你正在返回JSON数据,你可以简单地把它在object.Also后您的块已经被执行,你不这么执行它之后,你应该叫response.success响应你的情况你的代码如下所示:

Parse.Cloud.define('test_function', function(req, res) { 
 
    var myData = {} 
 

 
    Parse.Cloud.httpRequest({ 
 
    method: 'POST', 
 
    url: 'http://dummyurl', 
 
    headers: { 
 
     'Content-Type': 'application/json;charset=utf-8' 
 
    }, 
 
    body: { 
 
     some_data: "test_data" 
 
    } 
 
    }).then(function(httpResponse) { 
 
    console.log(httpResponse.text); 
 
    myData = httpResponse.data; 
 
    res.success(myData); // this should be called in here! 
 

 
    }, function(httpResponse) { 
 
    console.error('Request failed with ' + httpResponse.status); 
 
    res.error("Request failed"); 
 
    }); 
 

 

 

 
});

相关问题