有一天,我在JavaScript中将此函数作为jQuery插件中对象的简单DTO编写。我假设如果我在该函数的末尾写了一条通用的return gridColumns
行,则可能会在我的for
循环完成填充之前返回该阵列。所以我最后写了这个while (true)
声明,认为我很聪明。如何理解JavaScript的同步性/异步性
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?
当您对异步服务进行函数调用时,它是异步的。上面的代码中没有任何符合该描述。 – Pointy
@Pointy,所以async必须被明确定义,否则JavaScript将同步执行? –
感谢downvote,谁做到了。对于想要学习的人来说,真的很有建设性,就像我一样。 –