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。
我需要创建一系列在队列中执行的 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。