1 var EventEmitter = require('events').EventEmitter;
2 var proxy = new EventEmitter();
3 proxy.setMaxListeners(0);
4 var selectSqls = [];
5 var flags = [];
6 for(var i=0;i<10;i++){
7 flags.push('ready');
8 for(var j=0;j<10;j++){
9 selectSqls.push(j);
10 }
11 }
12
13 var count=1;
14 var http=require('http');
15 var select = function (num,callback) {
16 proxy.once(''+num,callback);
17 if(flags[num] === 'ready'){
18 flags[num] = 'pending';
19 http.get("http://www.cnblogs.com/", function(res) {
20 console.log("Got response: " + count++);
21 proxy.emit(''+num,num);
22 flags[num] = 'ready';
23 //res.resume();
24 }).on('error', function(e) {
25 console.log("Got error: " + e.message);
26 });
27 }
28 };
29
30 var callNum= function(num){
31 console.log(num + ':ok');
32 };
33 for(var num=0;num<selectSqls.length;num++){
34 var sqlNum = selectSqls[num];
35 //console.log(sqlNum);
36 select(sqlNum,callNum);
37 }