无法在解析云函数中从httpRequest中检索结果
Unable to retrieve result from httpRequest in Parse Cloud function
我正在运行一个云函数内的Parse httpRequest,我从不同的解析作业调用。我不知道如何从我在Cloud作业中调用的Cloud函数中检索结果值/成功值。
下面是云函数的代码:Parse.Cloud.define("maps_request", function(request, response) {
var maps_url = 'http://maps.googleapis.com/maps/api/directions/json';
var origin = request.params.origin;
var destination = request.params.destination;
var waypoint = "via:" + request.params.waypoint;
Parse.Cloud.httpRequest({
url: maps_url,
params: {
origin: origin,
destination: destination,
waypoints: waypoint,
optimizeWaypoints: true,
durationInTraffic: true
},
success: function(directions) {
var time = directions.data['routes'][0]['legs'][0]['duration']['value']
time = time / 60.00
response.success(time)
},
error: function(error) {
response.error("Shit broke.")
}
})
});
和Cloud作业中调用的代码:
var promise = Parse.Promise.as();
promise = Parse.Cloud.run('maps_request', {
origin: String(driverOriginAddress + " " + driverOriginZip),
destination: String(driverDestinationAddress + " " + driverDestinationZip),
waypoint: String(driverDestinationAddress + " " + driverDestinationZip)
}, {
success: function(results) {
console.log("Results: " + results)
},
error: function(){
console.log("Error")
}
})
console.log(promise)
解析日志显示我想从云函数的确切结果,但我得到这个:"{"_resolved":假的,"_rejected":假的,"_resolvedCallbacks":[],"_rejectedCallbacks":[]}
我尝试了大约50个不同的版本来解决这个问题。如有任何帮助,我将不胜感激。
这是云函数的另一个版本的代码:
Parse.Cloud.define("maps_request", function(request, response) {
var maps_url = 'http://maps.googleapis.com/maps/api/directions/json';
var origin = request.params.origin;
var destination = request.params.destination;
var waypoint = "via:" + request.params.waypoint;
var test = []
Parse.Cloud.httpRequest({
url: maps_url,
params: {
origin: origin,
destination: destination,
waypoints: waypoint,
optimizeWaypoints: true,
durationInTraffic: true
},
success: function(directions) {
var time = directions.data['routes'][0]['legs'][0]['duration']['value']
time = time / 60.00
test.push(time)
},
error: function(error) {
console.log("Error")
}
}).then(function() {
response.success(test[0])
}, function (error) {
response.error("Error2")
})
});
和呼叫:
var test = Parse.Cloud.run('maps_request', {
origin: String(driverOriginAddress + " " + driverOriginZip),
destination: String(driverDestinationAddress + " " + driverDestinationZip),
waypoint: String(driverDestinationAddress + " " + driverDestinationZip)
})
console.log("Test: " + test)
httpResponse显示了正确的值,但仍然无法访问它们或分配给变量
没有必要将Parse.Cloud.run()
包装在承诺中,因为它已经返回了一个承诺。
同样在你的第二个例子中,你调用云函数,就好像它是一个sync调用而不是async,并查看承诺而不是你想要的结果。
试试这个:
Parse.Cloud.run('maps_request', {
origin: String(driverOriginAddress + " " + driverOriginZip),
destination: String(driverDestinationAddress + " " + driverDestinationZip),
waypoint: String(driverDestinationAddress + " " + driverDestinationZip)
}).then(function (result) {
// we have the result of the cloud function here, just log it for now
console.log("Test:", result);
}, function (error) {
// uh oh!
console.log(error);
});
这听起来是对的-您正在将'promise'的值记录到控制台。你必须真正的resolve()承诺让它调用你的云函数等等
相关文章:
- 使用JSP从服务器检索和显示图像
- 通过Magento的网络服务检索运费
- 如何通过php页面将数据库值检索到jquery自动完成框中
- 无法使用javascript检索SPList项
- 可以't使用Angular解析/检索JSON
- GoogleFeed正在检索图像
- 通过ajax将坐标传递到php服务器端,并在处理后检索到javascript
- 使用Scala Play Framework视图中的键检索映射值
- 从数据库中检索字段,而不模拟它们
- 从HttpRequest获取内容
- 如何在corona sdk中从CK编辑器中检索数据
- 如何使用Javascript客户端对象模型检索Sharepoint 2010列表项权限
- 在Node.js中上传和检索图像
- XML2JSON并检索数据
- 如何从php返回的JSON中检索值
- 如何在.js函数中检索来自其他模板的表单的目标值
- 使用ASP.NET将谷歌地图添加到项目中,并从数据库中检索位置
- 使用javascript进行JSON数据检索
- 检索MongoDB binData并显示为<img>src
- 无法在解析云函数中从httpRequest中检索结果