如何在循环中迭代节点js中有延迟的每个项目

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

我正在节点中的twitter监视器上工作,每次向twitter api发送请求时,我都会遍历twitter api键数组,我希望每个循环迭代之间有3秒的延迟,] >

我尝试使用setTimeout,但是没有用

const apiarray =  [new twit({
    consumer_key: '5435435435435',
    consumer_secret: '5435435345345',
    access_token: 'tewrt43543354355453',
    access_token_secret: '48239478234923047324734' 

    }),
    new twit({
    consumer_key: '3213235543254343534543',
    consumer_secret: '8768768768678768',
    access_token: '765474657765756745',
    access_token_secret: '65434563654634643654643'
})]


let counter = 0
let tweet_stay = []
let tweet_info = () => { 
    apiarray.forEach(function (item) {
        item.get('lists/statuses', {slug: 'slughere', owner_screen_name: 'namehere', count: 1, include_rts: false}, (err, data, response) => {
            counter ++
            console.log(counter)
            if (counter == 1) {
                tweet_stay.push(data[0].id)
                console.log('tweet ID added')
            }
       }
}
setInterval(tweet_info, 3000)

我正在节点上的twitter监视器上工作,每次我向twitter api发送请求时,我都会遍历twitter api键数组,我希望每个循环之间有3秒的延迟...

node.js loops twitter
1个回答
0
投票

您需要将计时器包装在Promise中,以便可以等待它。然后,可以将tweet_info设为异步函数,并使用包装的计时器延迟迭代。

© www.soinside.com 2019 - 2024. All rights reserved.