使用来自另一个组件/ js的node-schedule

时间:2017-05-25 01:45:35

标签: javascript node.js cron

我正在尝试理解javascript和cron。 我需要每n秒更新一次变量。 这是一个例子:

/*===cron.js===*/
    var schedule = require('node-schedule')

    var hello = initHello()

    function initHello () {
        return 'hello'
    }

    function changeHelloToWorld () {
        return 'world'
    }

    function cron () {
        //change value to 'world' after n second(s)
        schedule.scheduleJob('*/10 * * * * *', function () {
            hello = changeHelloToWorld()
            return hello
        })
        return hello
    }


    module.exports = {
        cron
    }

/*===index.js===*/
var Hello = require('./cron')
var schedule = require('node-schedule');

//if I use this, it works. It prints 'world' instead of 'hello' after n seconds
schedule.scheduleJob('*/1 * * * * *', function () {
    console.log(Hello.cron())
})

//But if I use this, it doesn't work.
//It prints 'hello' only once
console.log(Hello.cron())

从上面的例子中,我的问题是,如何在不使用index.js中的scheduleJob()的情况下从cron.js获取新值? 如果不在index.js中使用scheduleJob(),我怎样才能确保结果是'world'而不是'hello'?

0 个答案:

没有答案