在终端上运行此操作。
为什么?提取是排队的请求吗?可能是对并行呼叫的OS限制吗?我不认为事件循环对这个简单的循环放大了很大。
node test.js
要为AportController设置超时,您应该使用特定超时创建一个信号对象。 您可以使用:
const run = async (i) => {
const start = Date.now();
const abortController = new AbortController();
const timeout = setTimeout(() => {
abortController.abort();
}, 2000);
try {
const v = await (
await fetch("https://slowendpoint.com", {
method: "POST",
body: JSON.stringify([{}]),
signal: abortController.signal,
})
).text();
} catch (e) {
console.error(e);
} finally {
console.log(i, "runtime", Date.now() - start);
clearTimeout(timeout);
}
};
for (let i = 0; i < 10000; i++) {
run(i);
}