Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
237 views
in Technique[技术] by (71.8m points)

javascript - Why is my discord bot returning result from mongoDB as undefined when inside of a setInterval and setTimeout function?

I'm trying to add an hourly command to my discord bot. Every hour it should find all users and add money to them. The command works perfectly fine when it is not inside of a setinterval or settimeout function. However, the command needs to run every hour so the setInterval command is the best option. Here is my code.

const economy = require('./economy')
const profileSchema = require('./schemas/profile-schema')
module.exports = async client => {

        let J = 0
        
        var interval = setInterval (function () {
            profileSchema.find({

            }).exec(async (err, res) => {
                if (err) {
                    console.log(err)
                }
                console.log(res.length)
                if (res.length === 0) {
                    console.log('No users.')
                    return
                } else {
                console.log(res.length)
                    for ( i= 0; i < res.length; i++) {
                        const userId = res[i].userId
                        let hourly = await economy.hourlyIncome(userId)
                        await economy.addCoins(userId, hourly)

                        if (i < res.length) {
                            J = 0
                        }
                    }
                    // console.log('Done')
                }
                console.log('Done')
        
            })
        }, 3000); 
}

the exact error says:

/Users/*******/discordFamilyBot/hourlyIncome.js:14
                console.log(res.length)
                                ^

TypeError: Cannot read property 'length' of undefined

I've tried putting the function inside of a setInterval loop indirectly but even that ran the same error.

question from:https://stackoverflow.com/questions/65623007/why-is-my-discord-bot-returning-result-from-mongodb-as-undefined-when-inside-of

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...