lepu-test-platform-web/node_modules/fibers/test/async-hooks.js

39 lines
826 B
JavaScript

'use strict';
// This test must be run with --force-async-hooks-checks
if (process.versions.modules < 57) {
console.log('pass');
return;
}
const { AsyncResource } = require('async_hooks');
const Fiber = require('fibers');
class TestResource extends AsyncResource {
constructor() {
super('TestResource');
}
run(cb) {
// In the v8 API, only emitBefore() and emitAfter() are available
if (process.versions.modules < 59) {
this.emitBefore();
cb();
this.emitAfter();
} else {
// In v9 and higher, emitBefore() and emitAfter() are deperecated in favor of runInAsyncScope().
this.runInAsyncScope(cb);
}
}
}
let tmp = Fiber(function() {
let resource = new TestResource;
resource.run(function() {
Fiber.yield();
});
});
tmp.run();
setTimeout(function() {
tmp.run();
console.log('pass');
}, 5);