我必须访问模块外的变量,即使变量引用已更新。
below my module.js:
'use strict';
const Foo = () => {
const _date = new Date();
const _id = _date.getTime().toString(16);
console.log(`Foo() _id: ${_id}`);
setTimeout(() => {
f = Foo();
}, 5000); // 5s
return {
get_id: () => {
return _id;
}
}
}
let f = Foo();
module.exports = {
foo: f,
}
below my index.js:
const {foo} = require('./module');
console.log(`foo.get_id(): ${foo.get_id()}`);
setTimeout(() => {
console.log(`foo.get_id(): ${foo.get_id()}`);
}, 3000); // 3s
输出:
$ node index.js
Foo() _id: 17b0babddc1
foo.get_id (): 17 b0babddc1
foo.get_id (): 17 b0babddc1
Foo() _id: 17b0babf15e
Foo() _id: 17b0bac04f5
foo.get_id()在我更新模块上的变量f之后似乎是未定义的。
如何解决这个问题?
您的Foo函数等待5秒,然后试图分配f = Foo();
,但变量f
无法从您的函数访问。
然而f
是全局的,我不明白。