【发布时间】:2018-01-30 13:39:52
【问题描述】:
我正在通过帮助文件连接来自已定义用户的推文并尝试在我的 server.js 中检索它,但 str 值仍然未定义(并且此行首先执行),然后是我的 console.log helper 以正确的值打印。
输出:
GET /login/twitter/callback 302 618.242 ms - 0
服务器中的串联推文:未定义
帮助程序中的串联推文:测试推文 3 #TestTweet 测试推文 2 测试推文 1
谁能帮助我应该使用什么控制流来调用 twitterHelper.getTweets 函数来获取服务器中返回的 str?谢谢!
服务器.js
app.get('/login/twitter/callback',
passport.authenticate('twitter', {failureRedirect: "/login"},
function(req, res) {
// auth success
async.waterfall ([
function(callback) {
callback(null, twitterHelper.getTweets(user));
},
function(str, callback) {
console.log("Concatenated Tweets in Server: " + str);
callback(null);
}
],
function(err) {
if(err)
console.log("Error: " + err);
}
);
}
)
);
Helper.js
var concatTweets = '';
var promise = new Promise(
function(resolve, reject) {
T.get('statuses/user_timeline', params, function( err, data, response) {
if(err)
reject(err);
else {
for (var i = 0; i < data.length ; i++)
concatTweets = concatTweets + " " + data[i].text;
resolve(concatTweets);
}
})
}
).then(
str => {
console.log("Concatenated Tweets in Helper: " + str);
return str;
}, err => {
console.log(err);
return err;
}
);
【问题讨论】: