如何在Node.js上使用twitter api实现回调函数
How to implement a callback function while using the twitter api on Node.js
我正在使用twitter api,试图同时获取推文和特定用户的提及,但我一次只能获取一组特定的推文。根据我看到的一个类似的问题,需要一个回调函数来解决这个问题,但我很难解决,因为我对node.js还很陌生。我的问题是,我有两个用于推文和提及的客户端.get,但我一次只能调用一个,因此需要一个回叫函数。
jsonx = {};
function mentions(x){
client.get('search/tweets', {q:"@"+x, count:1},
function (err,data){
for(var index in data.statuses){
var tweet = data.statuses[index];
console.log(tweet.text);
jsonx[index] = tweet
}
res.end(JSON.stringify(jsonx))
})
}
function tweets(y){
client.get('statuses/user_timeline', {screen_name:"@"+y, count:1},
function(err,data) {
for(var index in data){
var tweet = data[index];
console.log(tweet.text);
jsonx[index] = tweet
}
res.end(JSON.stringify(jsonx));
})
}
任何关于我如何实现回调功能的帮助,以便同时从推特和提及中获得所有查询。
谢谢Steve
使用一个使用Promises的twitter客户端,甚至只是"Promiseing"您现在拥有的库,都会让这变得非常容易。
我推荐Bluebird.js来做这件事。如果你走那条路,它就是这样工作的:
1) 需要promise库(通过npm安装后)
var Promise = require('bluebird');
2) 使用Bluebird的promisify方法创建一个新的函数来发出请求。
var clientGet = Promise.promisify(client.get, client);
3) 使用聚合Promise方法同时发出两个请求,例如join
。
Promise.join(
clientGet('search/tweets', {q:"@"+x, count:1}),
clientGet('statuses/user_timeline', {screen_name:"@"+y, count:1}),
function(tweets, timeline) {
//other stuff here, including res.end/json/send/whatever
}
)
由于您希望将两个函数的结果存储在单个对象中,因此可以使用异步模块作为最佳实践。
var async = require('async');
async.series([
function(_cb){
//call function 1 here and fire _cb callback
},
function(_cb){
//call function 2 here and fire _cb callback
}
], function(error, response) {
if(e) {
//handle error
}
else {
//handle response object here. It will be an array of responses from function_1 and function_2
}
});
相关文章:
- Twitter API在jQuery AJAX中设置授权头
- Twitter API JSON调用未获得最新的3条推文
- Twitter API 1.1无法对您2进行身份验证
- Twitter api using Javascript
- 我需要oAuth根据新的Twitter API指南检索公共推文吗?(以及如何?)
- 使用Twitter API进行推文时出现重复状态错误
- Twitter Bootstrap的Tab插件中“data-api”是什么意思
- 通过Twitter API javascript从时间线获取Twitter状态
- 解决向api.twitter.com发出XMLHttpRequest的方法
- 如何在Node.js上使用twitter api实现回调函数
- 使用JavaScript和Twitter API加载推文
- Twitter搜索API身份验证错误
- Twitter API推文位置
- 如何定义搜索词框来搜索用户'使用Twitter流API和meter.js的特定时间线
- Twitter API - no encoding
- Twitter API:更新有效,但过滤器无效
- Date.getTime()返回IE11中ISO/Twitter API日期的NaN
- Twitter API and Node
- 访问 Twitter API - 身份验证和骨干模型
- “follow”键在Get friends/list API Twitter中总是返回false