61 lines
1.3 KiB
JavaScript
61 lines
1.3 KiB
JavaScript
|
var assert = require('assert');
|
||
|
var domain = require('domain');
|
||
|
var d1 = domain.create();
|
||
|
var d2 = domain.create();
|
||
|
var d3 = domain.create();
|
||
|
var d4 = domain.create();
|
||
|
var err1, err2, err3, err4;
|
||
|
|
||
|
d1.run(function() {
|
||
|
var common = require('../../common');
|
||
|
var connection = common.createConnection();
|
||
|
var assert = require('assert');
|
||
|
|
||
|
d2.run(function() {
|
||
|
connection.query('SELECT 1', function(err, _rows, _fields) {
|
||
|
if (err) throw err;
|
||
|
throw new Error('inside domain 2');
|
||
|
});
|
||
|
});
|
||
|
|
||
|
d3.run(function() {
|
||
|
connection.execute('SELECT 1', function(err, _rows, _fields) {
|
||
|
if (err) throw err;
|
||
|
throw new Error('inside domain 3');
|
||
|
});
|
||
|
});
|
||
|
|
||
|
d4.run(function() {
|
||
|
connection.ping(function() {
|
||
|
throw new Error('inside domain 4');
|
||
|
});
|
||
|
});
|
||
|
|
||
|
connection.end();
|
||
|
setTimeout(function() {
|
||
|
throw new Error('inside domain 1');
|
||
|
}, 100);
|
||
|
|
||
|
d2.on('error', function(err) {
|
||
|
err2 = err;
|
||
|
});
|
||
|
d3.on('error', function(err) {
|
||
|
err3 = err;
|
||
|
});
|
||
|
d4.on('error', function(err) {
|
||
|
err4 = err;
|
||
|
});
|
||
|
|
||
|
});
|
||
|
|
||
|
d1.on('error', function(err) {
|
||
|
err1 = err;
|
||
|
});
|
||
|
|
||
|
process.on('exit', function() {
|
||
|
assert.equal(''+err1, 'Error: inside domain 1')
|
||
|
assert.equal(''+err2, 'Error: inside domain 2')
|
||
|
assert.equal(''+err3, 'Error: inside domain 3')
|
||
|
assert.equal(''+err4, 'Error: inside domain 4')
|
||
|
});
|