Reading the contents at three URLs using Promises
On the whole it does not look very elegant, especially new function, building functions in a loop and building the Promise array.

I would suggest you invest time in the bluebird Promise.map function and write something like this:

var indexes = [0,1,2];
Promise.map(indexes, function(index) {
    return new Promise(function(resolve) {
        makeRequest(resolve, index);
    });
}).then(function(result) {
    result.forEach(function(item) {
        console.log(item.bl.toString());
    })
});


Other than that, you seem very light on the failure handling, make sure to use catch and reject.