我想在Twitter环境中使用npm软件包node.js
发布一条推文。使用文档client.post
中所示的here方法时,我可以发布一条简单的文本推文。问题是,当我尝试使用promise.then()
获取状态对象时,无法发布。我的诺言的输出是status
对象,它是一个简单的url
。另外,我的以下代码也没有收到任何错误或请求响应。
const Twitter = require('twitter');
const config = require('./config.js');
// passing client details from config file to new T class
const T = new Twitter(config);
T.post('statuses/update', getData(url).then((data)=>{
let status = JSON.stringify(data);
console.log(status)
return status
}), function(error, tweet, response) {
if(!error){
console.log("tweet successfully sent", tweet.text);
}
else (error);
});
// console.log(status)
// "http://example.com/"
我相信我在传递来自我的Promise对象的数据时犯了一些错误。有人可以帮助我更正吗?谢谢。
问题是您试图在传递参数的同时进行异步操作,从而最终发送承诺。您可以像这样重组代码,因为twitter
包还支持promise。
const Twitter = require('twitter'); const config = require('./config.js'); // passing client details from config file to new T class const T = new Twitter(config); getData(url) .then(data => JSON.stringify(data)) .then(status => T.post('statuses/update', status)) .then(tweet => console.log("tweet successfully sent", tweet.text));
希望这会有所帮助。