【发布时间】:2019-07-17 10:03:37
【问题描述】:
我面临一个非常奇怪的错误。我多次调用同一个端点,所以我可以测试我的应用程序的性能。当我进行以下测试时:
const call = () => axios.post('http://localhost:3000');
(async () => {
let calls = [call(), call(), call(), call(), call()]
let responses = await Promise.all(calls);
})();
我在服务器上得到以下日志:
POST / 200 2576.633 ms - 18
POST / 200 2587.848 ms - 18
POST / 200 2596.250 ms - 18
POST / 200 2583.056 ms - 18
POST / 200 3190.753 ms - 18
一切正常! :)
但是如果我像这样动态创建数组:
const call = () => axios.post('http://localhost:3000');
(async () => {
let calls = new Array(5);
calls = calls.fill(call());
let responses = await Promise.all(calls);
})();
服务器上的日志只有一个:
POST / 200 3803.059 ms - 18
这怎么可能?和缓存有关吗?
注意:脚本和服务器都使用 Node 10.14.0 服务器是一个最小的 Express 应用程序,没有 Nginx 或其他网络服务器运行。
【问题讨论】:
-
如果你想让
call()被执行五次,你正在寻找Array.from({length: 5}, call)。 -
@Bergi 清洁工!谢谢