通过 parse.cloud.httpReq 发送多个 http 请求
Send multiple http request via parse.cloud.httpReq
我正在尝试通过 Parse.Cloud.httpRequest
发送多个 HTTP 请求,但我得到
{"code":141,"message":"Error: Can't call success/error multiple times
我需要执行所有请求并将结果放入“响应”和 return 响应中,以便我可以在另一个函数中使用它。
或者如果有人可以指导我,也许我走错了方向。
此致
Parse.Cloud.define('http', function(request, response) {
var query = new Parse.Query(Parse.Installation);
var responses = new Array ();
for (var i = 0; i < request.params['params'].length; i++) {
var object = request.params['params'][i];
Parse.Cloud.httpRequest({
url: 'http://185.xxxxxxx'+ object +'&languagePath=en',
success: function(httpResponse) {
responses.push(httpResponse);
}
}).then(function(httpResponse) {
console.log('Request Succeeded with response Data ' + httpResponse.text);
response.success(responses);
},function(error) {
// error
console.error('Request failed with response code ' + httpResponse.status);
});
}
});
诀窍是收集完成 http 请求的承诺,然后设置响应 "when" 承诺已完成。
Parse.Cloud.define('http', function(request, response) {
var promises = [];
for (var i = 0; i < request.params['params'].length; i++) {
var object = request.params['params'][i];
promises.push(makeRequestWithObject(object));
}
Parse.Promise.when(promises).then(function() {
// results are passed to this function as var args
response.success(arguments);
}, function(error) {
response.error(error);
});
});
// return a promise to complete an http request with object
function makeRequestWithObject(object) {
var url = 'http://185.xxxxxxx'+ object +'&languagePath=en';
return Parse.Cloud.httpRequest({ url:url });
}
我正在尝试通过 Parse.Cloud.httpRequest
发送多个 HTTP 请求,但我得到
{"code":141,"message":"Error: Can't call success/error multiple times
我需要执行所有请求并将结果放入“响应”和 return 响应中,以便我可以在另一个函数中使用它。
或者如果有人可以指导我,也许我走错了方向。
此致
Parse.Cloud.define('http', function(request, response) {
var query = new Parse.Query(Parse.Installation);
var responses = new Array ();
for (var i = 0; i < request.params['params'].length; i++) {
var object = request.params['params'][i];
Parse.Cloud.httpRequest({
url: 'http://185.xxxxxxx'+ object +'&languagePath=en',
success: function(httpResponse) {
responses.push(httpResponse);
}
}).then(function(httpResponse) {
console.log('Request Succeeded with response Data ' + httpResponse.text);
response.success(responses);
},function(error) {
// error
console.error('Request failed with response code ' + httpResponse.status);
});
}
});
诀窍是收集完成 http 请求的承诺,然后设置响应 "when" 承诺已完成。
Parse.Cloud.define('http', function(request, response) {
var promises = [];
for (var i = 0; i < request.params['params'].length; i++) {
var object = request.params['params'][i];
promises.push(makeRequestWithObject(object));
}
Parse.Promise.when(promises).then(function() {
// results are passed to this function as var args
response.success(arguments);
}, function(error) {
response.error(error);
});
});
// return a promise to complete an http request with object
function makeRequestWithObject(object) {
var url = 'http://185.xxxxxxx'+ object +'&languagePath=en';
return Parse.Cloud.httpRequest({ url:url });
}