我正在尝试使用以下代码存储来自推文的ID供以后使用:
let twit = require('twit');
let config = require('./config.js');
const T = new twit(config);
let retweetIDs = [];
const promise = T.get('statuses/user_timeline', {screen_name: 'someusername', count: '1'});
promise.then(res =>{
let id = res["data"][0]["id"];
retweetIDs.push(id)
});
console.log(retweetIDs)
console.log()返回的是一个空数组[]。
虽然我了解javascript是asynchronous,所以log语句在GET请求返回响应之前执行,也就是说,为什么会发生,但我不知道如何解决它。任何帮助将不胜感激。
只需将console.log
移至then
:
promise.then(res =>{
let id = res["data"][0]["id"];
retweetIDs.push(id);
console.log(retweetIDs);
});
如果您对更多同步代码感兴趣(推荐),请尝试像这样使用async-await
:
let twit = require('twit');
let config = require('./config.js');
(async () => {
let retweetIDs = [];
const
url = 'statuses/user_timeline',
params = { screen_name: 'someusername', count: '1' },
result = await new twit(config).get(url, params),
{ id } = result.data[0];
retweetIDs.push(id);
console.log(retweetIDs);
})();