【发布时间】:2017-01-06 07:56:36
【问题描述】:
我试图了解 Promise 是如何工作的,但我没有得到结果。我已经尝试了很多示例,但没有任何效果。
这段代码是一个 Parse cloudcode 函数,它接收一个数组 o 字符串,它们中的每一个都是我请求的 url 的一部分,所以,如果我收到一个由 3 个元素组成的数组,代码必须发出 3 个 url 的 httprequest收集 3 个响应并将其发送给客户端。这就是我所做的:
Parse.Cloud.define('getInfo', function(request,response) {
var placas = request.params.placa;
x(placas, function(result){
response.success(result);
}, function(error){
response.error(error);
});
});
function x(placas,callback,error){
var url1 = 'http://XXXXX/';
var promises = [];
for(var i=0; i<placas.length ;i++){
var url2 = url1.concat(placas[i]);
promises.push(requestMulta(url2));
}
var data = Parse.Promise.as(promises);
callback(data);
}
function requestMulta(url){
var promise = new Parse.Promise();
Parse.Cloud.httpRequest({
url: url ,
headers: {
'Content-Type': 'application/json;charset=utf-8'
}
}).then(function(httpResponse) {
...
promise.resolve(data);
}, function(httpResponse) {
//Handle error
});
return promise;
}
我得到的回应是:
{
"_rejected" = 0;
"_rejectedCallbacks" = (
);
"_resolved" = 1;
"_resolvedCallbacks" = (
);
"_result" = (
(
"<null>", // 3 null's because I'm testing with an array o 3 elements
"<null>",
"<null>"
)
);
}
【问题讨论】:
标签: javascript node.js promise httprequest parse-cloud-code