mirror of
https://github.com/denoland/deno.git
synced 2024-12-22 07:14:47 -05:00
36 lines
1 KiB
JavaScript
36 lines
1 KiB
JavaScript
|
// deno-fmt-ignore-file
|
||
|
// deno-lint-ignore-file
|
||
|
|
||
|
// Copyright Joyent and Node contributors. All rights reserved. MIT license.
|
||
|
// Taken from Node 20.11.1
|
||
|
// This file is automatically generated by `tests/node_compat/runner/setup.ts`. Do not modify this file manually.
|
||
|
|
||
|
'use strict';
|
||
|
const common = require('../common');
|
||
|
const assert = require('assert');
|
||
|
const { AsyncLocalStorage } = require('async_hooks');
|
||
|
|
||
|
// This is an asynclocalstorage variant of test-timers-clearImmediate.js
|
||
|
const asyncLocalStorage = new AsyncLocalStorage();
|
||
|
const N = 3;
|
||
|
|
||
|
function next() {
|
||
|
const fn = common.mustCall(onImmediate);
|
||
|
asyncLocalStorage.run(new Map(), common.mustCall(() => {
|
||
|
const immediate = setImmediate(fn);
|
||
|
const store = asyncLocalStorage.getStore();
|
||
|
store.set('immediate', immediate);
|
||
|
}));
|
||
|
}
|
||
|
|
||
|
function onImmediate() {
|
||
|
const store = asyncLocalStorage.getStore();
|
||
|
const immediate = store.get('immediate');
|
||
|
assert.strictEqual(immediate.constructor.name, 'Immediate');
|
||
|
clearImmediate(immediate);
|
||
|
}
|
||
|
|
||
|
for (let i = 0; i < N; i++) {
|
||
|
next();
|
||
|
}
|