Files
2025-08-27 17:10:05 +08:00

49 lines
1.4 KiB
JavaScript

var dnode = require('../');
var test = require('tape');
var EventEmitter = require('events').EventEmitter;
test('nested', function (t) {
t.plan(4);
var server1 = function () {
return dnode({
timesTen : function (n,reply) { reply(n * 10) }
});
};
var server2 = function () {
return dnode({
timesTwenty : function (n,reply) { reply(n * 20) }
});
};
var moo = new EventEmitter;
var client1 = dnode();
client1.on('remote', function (remote1, conn1) {
var client2 = dnode();
client2.on('remote', function (remote2, conn2) {
moo.on('hi', function (x) {
remote1.timesTen(x, function (res) {
t.equal(res, 5000, 'emitted value times ten');
remote2.timesTwenty(res, function (res2) {
t.equal(res2, 100000, 'result times twenty');
});
});
});
remote2.timesTwenty(5, function (n) {
t.equal(n, 100);
remote1.timesTen(0.1, function (n) {
t.equal(n, 1);
});
});
});
client2.pipe(server2()).pipe(client2);
});
client1.pipe(server1()).pipe(client1);
setTimeout(function() {
moo.emit('hi', 500);
}, 200);
});