mirror of
https://github.com/nodejs/node.git
synced 2025-04-29 22:40:57 +00:00

PR-URL: https://github.com/nodejs/node/pull/34439 Fixes: https://github.com/nodejs/node/issues/34401 Refs: https://github.com/nodejs/node/pull/27581 Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com> Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
36 lines
813 B
JavaScript
36 lines
813 B
JavaScript
'use strict';
|
|
const common = require('../common');
|
|
const assert = require('assert');
|
|
const { AsyncLocalStorage } = require('async_hooks');
|
|
const http = require('http');
|
|
|
|
const asyncLocalStorage = new AsyncLocalStorage();
|
|
|
|
const agent = new http.Agent({
|
|
maxSockets: 1
|
|
});
|
|
|
|
const N = 3;
|
|
let responses = 0;
|
|
|
|
const server = http.createServer(common.mustCall((req, res) => {
|
|
res.end('ok');
|
|
}, N));
|
|
|
|
server.listen(0, common.mustCall(() => {
|
|
const port = server.address().port;
|
|
|
|
for (let i = 0; i < N; i++) {
|
|
asyncLocalStorage.run(i, () => {
|
|
http.get({ agent, port }, common.mustCall((res) => {
|
|
assert.strictEqual(asyncLocalStorage.getStore(), i);
|
|
if (++responses === N) {
|
|
server.close();
|
|
agent.destroy();
|
|
}
|
|
res.resume();
|
|
}));
|
|
});
|
|
}
|
|
}));
|