Javascript 如何从函数向对象添加值
我有一个像这样的物体Javascript 如何从函数向对象添加值,javascript,jquery,callback,hashmap,Javascript,Jquery,Callback,Hashmap,我有一个像这样的物体 var obj = { key : firstLevel() } 现在我希望从函数(比如firstLevel())返回obj.key的值。 在我的例子中,问题是firstLevel()函数嵌入了回调函数。我想将它的响应作为obj.key的值返回 函数定义如下 var firstLevel = function(){ esClient.search(function(response){ console.log(response); //I wa
var obj = {
key : firstLevel()
}
现在我希望从函数(比如firstLevel()
)返回obj.key
的值。
在我的例子中,问题是firstLevel()
函数嵌入了回调函数。我想将它的响应作为obj.key
的值返回
函数定义如下
var firstLevel = function(){
esClient.search(function(response){
console.log(response); //I want to return this response as the value for obj.key
})
}
这会起作用,但会冻结窗口。我认为您必须将其放入变量中,然后将其传递给JSON对象。@Shubham我认为变量的范围在这里是个问题。..esClient.search这应该是同步的,否则您将在回调之前赋值。或者您可以移动esClient.search另一个函数并在回调后赋值或创建对象。如果搜索函数是异步的,则结果总是空的。我认为要求获取对obj.key的响应的值。
var firstLevel = function(){
var result;
esClient.search(function(response){
result=response;
})
return result;
}
var firstLevel = function(){
var res;
esClient.search(function(response){
console.log(response); //I want to return this response as the value for obj.key
res = response;
});
while(!res) {}
return res;
}