Promises und Streams mit Bluebird.js und Twitter stream
Ich bin neu bei Promises and Node und bin neugierig, Versprechungen mit Streams zu verwenden. Kann ich einen Stream versprechen? Mit Bluebirdjs und dem Twit-Modul habe ich Folgendes:
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)
})
});
Dieser Code protokolliert keinen Tweet und es wird kein Fehler ausgegeben. Nichts passiert, die Verbindung scheint hergestellt zu sein, aber keines der .then-Versprechen funktioniert.
Das Original-Snippet, bevor Sie versuchen, die im @ enthaltenen Versprechen zu implementieretwit docs
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)
})