【发布时间】:2022-01-26 00:03:20
【问题描述】:
在处理 another problem 时,我被以下事实误导:Chrome(可能还有其他浏览器)在将对象的键输出到控制台时会以某种方式神奇地排序:
let inputs = ["XMl", "SFJ", "dTg", "amN"];
let promises = {};
for (let val of inputs) {
let p = new Promise(
(resolve) => setTimeout(resolve, 500 + Math.random() * 1500, "new:" + val)
);
promises[val] = p
}
console.log(promises)
Promise.allSettled(Object.values(promises)).then((res) => console.log(res))
现在浏览器 (Chrome) 显示:
因此,展开输出和折叠输出之间存在差异。这是标准行为吗?这是哪里来的?
【问题讨论】:
-
你可以为你提到的问题做
let promises = {}。没有特定于数组的内容。这是误导。 -
感谢 cmets。我添加了
let(在原始代码中)并更改为let promises = {}。 -
@adiga 但是,折叠和展开表单的输出仍然不同。
-
@PhilippImhof 是的。这个问题现在特定于键的顺序而不是关联数组
-
我想这是为了帮助您轻松找到特定的密钥...我不知道任何标准。
标签: javascript google-chrome-devtools