我在嘗試使功能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