我对 Promises 和 Node 非常陌生,并且对在流中使用 Promise 感到好奇。我可以承诺直播吗?
使用 Bluebirdjs 和 Twit 模块,我有以下内容:
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)
})
});
运行此代码不会记录推文,也不会引发错误。似乎没有发生任何连接,但 .then 承诺都不起作用。
原始片段,在尝试实现中找到的承诺之前推特文档 https://github.com/ttezel/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)
})