【发布时间】:2019-01-09 09:56:15
【问题描述】:
我有一个单例模块
class Singleton {
private static instance: Singleton;
private _foo!: string;
private constructor() {
}
static getInstance() {
if (!Singleton.instance) {
Singleton.instance = new Singleton();
Singleton.instance._foo = "aaa";
}
return Singleton.instance;
}
get foo(): string {
return this._foo;
}
set foo(txt) {
this._foo = txt;
}
}
export let global = Singleton.getInstance();
在主文件中我这样做
// main.ts
import { global } from "./global";
global.foo = "bbb";
console.log(global.foo);
import("./part1").then((t) => {
t.default();
});
这会输出“bbb”。现在主模块导入另一个文件(part1.ts)
在 part1.ts 中我再次导入全局模块
// part1.ts
import { global } from "./global";
export default () => {
console.log("test:" + global.foo);
};
输出是“aaa”,但我需要输出之前的设置值(bbb)
我该怎么做?
【问题讨论】:
-
输出是“aaa”,但我需要输出之前设置的值(bbb) - 没有证据表明它是之前设置的。这个问题没有显示这些模块是如何相关的。请提供stackoverflow.com/help/mcve。
标签: node.js typescript singleton