将来自GET请求的数据存储在数组中[重复]

问题描述 投票:0回答:1

我正在尝试使用以下代码存储来自推文的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请求返回响应之前执行,也就是说,为什么会发生,但我不知道如何解决它。任何帮助将不胜感激。

javascript ajax
1个回答
0
投票

只需将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);
})();
© www.soinside.com 2019 - 2024. All rights reserved.