Promesas y transmisiones usando Bluebird.js y transmisión de Twitter

Soy nuevo, súper nuevo en Promises and Node y tengo curiosidad por usar promesas con streams. ¿Puedo prometer una transmisión? Usando Bluebirdjs y el módulo Twit tengo lo siguiente:

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)
  })
});

La ejecución de este código no registra un tweet y no se produce ningún error. No pasa nada, la conexión parece estar hecha, pero ninguna de las promesas .then funciona.

El fragmento original, antes de intentar implementar las promesas encontradas en eldocumentos de Twitter

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)
})

Respuestas a la pregunta(3)

Su respuesta a la pregunta