我有两个SQL查询,将它们组合在一起以创建带有多个对象的单个数组。我可以使用.push()方法做到这一点。 (这是Rollbase平台内的javascript,因此是查询格式)。
但是,我无法理解结果。该对象是正确的,并且由正确的对象和值组成。但是,它说它拥有8个对象,而有13个对象。它似乎也只是从第一个查询中计算值:
代码段:
rbf_selectQuery("SELECT name,id,Ppm_objecten,'object' FROM pm_objecten", 2000, function(values) {
var arr = values;
for (i = 0; i < values.length; i++) {
rbf_selectQuery("SELECT name,id,R82743 AS Ppm_objecten,'activiteit' FROM pm_activiteit WHERE R82743=" + values[i][1], 2000, function(values2) {
for (n = 0; n < values2.length; n++) {
if (values2.length > 0) {
arr.push(values2[n]);
}
}
});
}
var length = arr.length;
console.log(arr.length);
console.log(arr);
options.success({
total: length,
data: arr
});
});
输出:
(8) [Array(4), Array(4), Array(4), Array(4), Array(4), Array(4), Array(4), Array(4)]
0: (4) ["Damwand", 72076, 68241, "object"]
1: (4) ["Fietsparkeergarage", 68238, 72042, "object"]
2: (4) ["Constructie", 68241, 68238, "object"]
3: (4) ["Systeem Fietsparkeergarage", 72042, null, "object"]
4: (4) ["Test Bovenliggend", 72043, null, "object"]
5: (4) ["Object onder Boven", 72074, 72043, "object"]
6: (4) ["Object onder onder", 72075, 72074, "object"]
7: (4) ["Test", 78394, null, "object"]
8: (4) ["Opstellen van een projectmanagementplan (PMP)", 74191, 68238, "activiteit"]
9: (4) ["Ontwerpen DO Fietsparkeergarage", 68248, 68238, "activiteit"]
10: (4) ["Ontwerpen UO Fietsparkeergarage", 68251, 68238, "activiteit"]
11: (4) ["Afdichting dek 80% gereed", 88220, 72042, "activiteit"]
12: (4) ["Afdichting dek resterende 20%", 88221, 72042, "activiteit"]
length: 13
__proto__: Array(0)
我只是不明白的是,为什么对象包含(8)个对象,如第一行所示。还有arr.length输出8。但是我看到并需要这13个对象...可以请人介绍我所缺少的吗?当输出typeOf()时,它们都是类型对象。
答案 0 :(得分:0)
感谢@barbsan,我被带往正确的方向。由于我是Java语言的新手,所以我还不知道这一点。通过设置一个新的Promise来等待查询结果,我就能做到并理解原因。这是因为Javascript同步和异步过程。
感谢您的帮助。