2017-04-01 44 views
1

我调用了ajax服务,并收回了对象的集合。物品(A)物业是组,订单,工资。假设我的对象是[Employee, 1, 1500],[Management, 2, 2000], [Employee, 3, salary]基于对象属性的数组和变量名称的数组

我需要为每可以容纳不同的对象(B)创建一个数组,这些对象可以具有格式[OrderNo, String]并将被AJAX调用也检索。如果已经创建了的数组,我不想再为它调用ajax。

问题是物体(A)(B)是事先不知道的号码,我必须能够引用(A)对象阵列和列表通它们。

结果在伪代码

var groups = [ 
    Employee: [[1372, "Free meals"],[947, "Lower salary"],[21, "Overtimes"],[74667,"Great Xmass party"]], 
    Management: [[11, "Responsibility"],[485,"Extra meetings"]] 
] 

我不知道如何正确地写

for(var index in "Object A"){ 
if(groups.AlreadyContains("Object A[index]")){ 
    do nothing; 
} 
else { 
    var "Object A[index]" = MyAjaxCall("Object A[index]"); 
    groups.AddAnArray("Object A[index]"); 
    } 
} 

function MyAjaxCall(par){ call ajax and return collection of B objects;} 

foreach(var i in groups.Management) 
{Console.log(Management[i].PropertyName);} 

控制台输出:责任,额外的会议

回答

0

你需要得到这两个对象类型A和类型B的对象就绪,然后开始对它们进行计算。

这是异步功能中的常见模式。

如果你是如果你使用jQuery

$.when(fetchObjectA, fetchObjectsB).done((objectsA, objectsB) => 
    // Do same as above 
) 
使用ES6

Promise.all(fetchObjectA, fetchObjectsB).then((objectsA, objectsB) => 
    // Do things over both objectsA and B 
) 

相关问题