我正在尝试理解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'?