我有一种方法说method1在 javascript 中,有另一种方法说method2 call. method2在 method2() 调用之后返回 method1 中需要的一个值。
var userObj={"first": [{'Key':'1',
'value':'student',},
{'Key':'2',
'value':'Teacher',}
],
"second":[{'Key':'1',
'class':'theory',},
{'Key':'2',
'value':'lab',}
]
};
function method1(){
var dataArray =method2(userObj.first);
alert("dataArray size -"+dataArray.length);
}
function method2(firstData) {
var dataArray = new Array();
$.indexedDB("SelfAssessment").objectStore("First_Sheet", "readonly").each(function(elem) {
dataArray .push(elem.value);
}).done(function() {
alert("inside first Data");
return dataArray ;
});
return dataArray ;
}
在上面的代码中,method2 返回我必须在 method1 中使用的 dataArray。那么该怎么做呢?
由于 method2 是异步调用,因此我在“method2 内部警报”之前收到“第一个警报”。如何以连续的方式得到这个?
请帮忙
没有method2
返回一个值。相反,将回调函数传递给method2
一旦获取到值就会执行:
function method2(firstData, completionCallback) {
var dataArray = new Array();
$.indexedDB("SelfAssessment").objectStore("First_Sheet", "readonly").each(function(elem) {
dataArray.push(elem.value);
}).done(function() { completionCallback(dataArray) });
}
并像这样调用它:
function method1(){
method2(userObj.first, function(dataArray) {
// inside a function that is called by method2 when the value is fetched
alert("dataArray size -"+dataArray.length);
// do everything with dataArray inside this function
});
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)