我在尝试使功能details()
根据可用事件查找某些事件的细节(getdetails
)。在下面的示例中,将询问具有ID ZRGZZ,RGHER和GRFDZ的事件的详细信息。这些细节应放置在一个数组中(信用额度为Theodore's answer)。结果应该是,当我打电话给details()
时,结果数组被存储,所以我可以在以后使用它。我不知道如何返回这个最终数组。在数组构造完成之前执行console.log(JSON.stringify(res));
。我知道这可能有事情做异步JS,但我不能换我的头周围...异步javascript问题
function details()
{
var res = {
"Result": "success",
"Key": "12345",
"Data": [{
"ID": "ZRGZZ",
"lastChangedDate": "2015-12-03 11:14:27"
}, {
"ID": "RGHER",
"lastChangedDate": "2015-12-03 15:17:47"
}, {
"ID": "GRFDZ",
"lastChangedDate": "2015-12-03 05:25:11"
}]
};
var i = 0;
var tmp;
res.Data.map(function(val,i){
getdetails(val.ID).then(function(data){
tmp = JSON.parse(data);
console.log(tmp);
Object.keys(tmp.Data[0]).map(function(v,j){
val[v] = tmp.Data[0][v];
console.log(JSON.stringify(res)); //(*)the last res gives me the result I'm looking for
});
}, function(error){ //error callback
console.log(error)
});
});
console.log(JSON.stringify(res)); //this is executed before (*)
}
试试这个:https://jsfiddle.net/rayon_1990/ks3vxomu/ – Rayon
我在你的标签中看到了角度,如果你能够使用角度,使用$ http.get进行异步调用非常容易,它给你一个承诺(你需要的对象) – luk492
@RayonDabre,似乎改变我的数据结构 – binoculars