如何理解JavaScript同步性/异步性

时间:2015-10-12 13:56:52

标签: javascript jquery asynchronous synchronous

前几天,我在JavaScript中将此函数编写为jQuery插件中对象的简单DTO。我假设如果我在函数末尾写了一个通用return gridColumns行,那么在我的for循环完成填充之前,可能会返回数组。所以我最后写了while (true)这句话,以为我很聪明。

    function getGridColumns() {
        var gridColumns = [];
        var records = $("#jqxGrid").jqxGrid("columns").records;
        for (var i = 0; i < (records.length); i++) {
            var obj = {
                datafield: records[i].datafield,
                width: records[i].width,
                cellsalign: records[i].cellsalign,
                hidden: records[i].hidden
            }
            gridColumns.push(obj);
        }
        while (true) {
            if (gridColumns.length == records.length {
                return gridColumns;
            }
        }
    };

我的一个伙伴看着我的小“黑客”并说完全没必要,我做了一些测试,并确定他是对的。

所以,这就是我在的地方。 如何是JavaScript异步,它是怎么回事?任何人都可以帮助我理解这个范例,以便我可以编写更好的JavaScript吗?

1 个答案:

答案 0 :(得分:2)

生成执行新“线程”的最常见机制因此可以说在javascript中引入异步情况是AJAX调用回调(除非调用是专门同步的)和setInterval()和{{1}调用。正如Pointy指出的那样,不仅如此。