组合Javascript数组的对象数量不正确

组合Javascript数组的对象数量不正确,javascript,Javascript,我有两个SQL查询,我将它们组合起来创建一个包含多个对象的数组。我可以使用.push()方法来实现这一点。(它是Rollbase平台中的javascript,因此是查询格式) 然而,我无法理解结果。对象是正确的,由正确的对象和值组成。但是它说它有8个物体,而有13个。此外,它似乎只计算第一个查询中的值: 代码段: rbf_selectQuery("SELECT name,id,Ppm_objecten,'object' FROM pm_objecten", 2000, function(valu

我有两个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个对象,正如你在第一行看到的。和arr.length输出8。但我看到并需要这13件物品。。。有人能告诉我我错过了什么吗?当输出typeOf()时,它们都是类型对象。

多亏了@barbsan,我被引导到了正确的方向。因为我是Javascript新手,所以我还不知道这一点。通过设置一个等待查询结果的新承诺,我能够做到这一点并理解原因。这是因为Javascript同步和异步进程


谢谢你的帮助。

length
说13不正确,但是console.log(arr.length);产出8。这就是我感到困惑的原因。这与此相关吗:?我稍微编辑了代码片段。我发现它不是正确的版本@barbsan:这篇文章很有帮助,谢谢!它是相关的-当循环中的查询尚未返回结果时,在第一个查询的回调中调用这些
控制台.log
s和
选项.success
。在您展开阵列时,额外的项目已被推送,您可以看到所有这些项目。你需要在这里。
(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)