我是 javascript 的新手,我一直在学习 Promise,最近我开始研究一些简单的列表,该列表以随机延迟 (setTimeout) 检索,我认为这是一个经典的。在尝试并进行了一些研究之后,我发现我发布的帖子对我有很大帮助,而且效果很好,但是在查看了该帖子对我所做的建议之后,我注意到差异是两个括号......我一直在阅读和试图理解为什么括号会产生如此大的差异(两个选项都有效),但我不明白。
有人可以解释有什么区别吗?我提到的括号在函数 loadIng() 中,第 5 行和第 12 行,第一行的左括号和第二行的右括号。
{
new Promise(resolve => {
...
})
}
如果我用方括号运行代码,它会同步运行,但如果我在没有方括号的情况下运行它,它会异步运行......我真的不明白。
function loadIngs() {
p = Promise.resolve();
for (let [k, v] of someArray) {
p = p.then(() =>
{new Promise(resolve => { //this
delay = Math.random() * 2000;
console.log(`${k}:${v} comes delayed for ${delay}`)
setTimeout(() => {
console.log("executes some function")
resolve();
}, delay);
})} //this
);
}
}