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