Javascript 自动执行函数数组

Javascript Array of Functions get auto executed

我需要创建一系列在队列中执行的 Promise。 它们是动态的,所以我需要将它们放在一个数组中(我找到了一篇解释如何操作的文章)。

问题是我的函数数组自动执行了它(具有正常功能的版本):

const functionTest = () => console.log("ok");

let tasks = [
  functionTest("berlin", "de", "metric"),
  functionTest("london", "en", "metric"),
  functionTest("paris", "fr", "metric"),
  functionTest("new York", "en", "imperial"),
];

不知道为什么,函数数组是我从来没有做过的事情

正常吗?

问题出在哪里?

如果您想稍后调用它,您需要将调用存储为 lambda 函数,如下所示:

let tasks = [
  () => functionTest("berlin", "de", "metric"),
  () => functionTest("london", "en", "metric"),
  () => functionTest("paris", "fr", "metric"),
  () => functionTest("new York", "en", "imperial"),
];

你可以这样称呼他们:

tasks[0]();

对于Promise的顺序执行,您可以在您提到的动态创建的Promise数组上使用reduce。