Promessas e transmissões usando Bluebird.js e Twitter stream

Sou novo super novo no Promises and Node e estou curioso sobre o uso de promessas com fluxos. Posso promisificar um fluxo? Usando o Bluebirdjs e o módulo Twit, tenho o seguinte:

var Twit = require('twit')
var Promise = require("bluebird");

var T = new Twit({
 consumer_key:         process.env.CONSUMER_KEY,
 consumer_secret:      process.env.CONSUMER_SECRET,
 access_token:         process.env.ACCESS_TOKEN,
 access_token_secret:  process.env.ACCESS_TOKEN_SECRET
})

Promise.promisifyAll(Twit);
Promise.promisifyAll(T);

var sanFrancisco = [ '-122.75', '36.8', '-121.75', '37.8' ]

T.streamAsync('statuses/filter', { locations: sanFrancisco })
.then(function(connection){
 connection.onAsync('tweet')
  .then(function (tweet) {
   console.log(tweet)
  })
});

A execução desse código não registra um tweet e nenhum erro é gerado. Nada acontece, a conexão parece ter sido feita, mas nenhuma das promessas funciona.

O snippet original, antes de tentar implementar as promessas encontradas nodocumentos do twit

var sanFrancisco = [ '-122.75', '36.8', '-121.75', '37.8' ]

var stream = T.stream('statuses/filter', { locations: sanFrancisco })

stream.on('tweet', function (tweet) {
 console.log(tweet)
})