我想根据查询构建并返回CloudCode中的对象数组,并为每条记录完成httpRequest的结果。
以下(示例)的问题是它为所有记录的所有“元素”对象添加了相同的值。从测试中我知道promises.push(Parse.Cloud.httpRequest(..(例如“countryName”))之外的变量是唯一的。
我在这里缺少什么?
谢谢!
Parse.Cloud.define("search3", function(request, response) {
var rs = [];
var promises = [];
// Query CountryTemp class
var query = new Parse.Query('CountryTemp');
query.limit(1000);
query.exists("Country");
query.include("Country");
query.greaterThan('Month11', 25);
query.find().then(function(results) {
for (var i = 0; i < results.length; ++i) {
var element = {};
var result = results[i];
var country = result.get("Country");
var countryID = country.id;
var countryName = country.get("Name");
var temp = result.get("Month11");
promises.push(Parse.Cloud.httpRequest({
url: 'http://www.google.com'
}).then(function(httpResponse){
element.id = countryID;
element.countryName = countryName;
element.temp = result.get("Month11");
element.httpresponse = httpResponse.text.substr(0, 50);
rs.push(element);
}));
}
return Parse.Promise.when(promises);
}).then(function() {
response.success(rs);
}, function() {
response.error('error');
});
});
答案 0 :(得分:0)
发现问题,使用下划线“_each”代替“for”修复它:
var _ = require('underscore');
..
_.each(results, function(result) {