gpt4 book ai didi

javascript - 如何使用 vanilla Node.js 运行 500 个请求,其中 20 个并行

转载 作者:搜寻专家 更新时间:2023-10-31 23:56:19 26 4
gpt4 key购买 nike

<分区>

我有这个普通的 Node.js 代码:

const http = require('http');

const host = 'example.com';
const path = '/';

let i = 0;

const run = () => {

console.log(i++);

return new Promise(resolve => {

const req = http.request({host, path}, res => {
res.pipe(process.stdout);
res.once('end', resolve);
});

req.end();

});

};

async function doall() {
for (let i = 0; i < 50; i++) {
await Promise.all(new Array(10).fill(null).map(run));
}
}

const now = Date.now();

console.log('Starting up.');

doall().then(_ => {
console.log('done after:', Date.now() - now, 'millis');
});

// the end

这有效 - 它运行 50 组 10... 除了问题是,所有 10 个完成,然后下一个 10 个开始,然后下一个 10 个完成。因此,在每组之间,有时会有 0 个请求在进行中。

有没有什么方法可以使用 vanilla Node.js 并 promise 复制 async.eachLimit(new Array(500), 20, ...)

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com