I'm just wondering why my setTimeout doesn't work in recursive pattern. It ran for just twice and stopped. 
Here's the fiddle. https://jsfiddle.net/vp90c10s/
var amqp = function() {
    return {
    connect: function(url, callback) {
        callback();
    }
  }
}
var module = {
    connect: function() {
        var self = this;    
    amqp().connect('', function() {
        console.log('trying to connect');
        setTimeout(self.connect, 1000)
    })
  }
}
module.connect();
