我有一个函数,要求为用户给出的每个单词进行聚合,然后绘制图表。将参数传递给elasticsearch javascript api搜索请求的回调函数
我想在回调中知道发送请求时,我的循环变量i的值是什么。
如何在弹性搜索API修复的预定义参数中传递变量i?
for(var i = 0; i < 15; i++)
{
client.search({
index: 'twitter',
type: "status",
size : 10,
body:
{
query: {
"bool": {
"must": [
{"query_string": {
"fields" : ["text"],
"default_operator" : "AND",
"query" : $scope.motsCompares[i]
}},
{"range": {
"created_at": {
"gte": moment().subtract(duration, key).format("YYYY-MM-DD")
}
}}
]
}
},
aggs : {
"frequence_mots" : {
"date_histogram" : {
"field" : "created_at",
"interval" : "day",
"format" : "dd/MM/yyyy",
"min_doc_count" : 0
}
}
}
}
}).then(function traiterResultat(body) {
// I would like to use i from the loop here to get the right word in my array ($scope.motsCompares[i])
}, function (error) {
console.trace(error.message);
});
}
它的工作原理!谢谢。因此,回调函数可以访问其直接父级的上下文,那是这个想法吗? – 2014-11-05 15:56:26
@Ganoninc如果他解决了你的问题 - 考虑接受这个答案。 – 2014-11-05 16:38:46
是的,接受答案:)。要回答你的第二个问题 - 每个新功能创建一个新的范围。并且来自外部作用域的任何变量都可以在内部作用域中“关闭”。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Closures – septerr 2014-11-05 21:53:50