为什么从两个打字稿文件中访问相同的类数据会在打字稿中给出不同的结果?如何解决?



我创建了3个打字稿文件,名为dataService.ts,init.ts,interest.ts 从这个dataService.ts文件是用于存储和检索数据从其他2文件。

在数据服务.ts 文件中

export default class DataService {
private static temp1 = null;
private static temp2 = null;
public static setData(property: string, value: any) {
DataService[property] = value;
}
public static getData(property: string) {
return DataService[property];
}
}

在 init.ts 文件中

import DataService from './common/dataService';
export default async function init() {
DataService.setData('temp1', 'init');
console.log('Data service from init ', DataService.getData('temp1'));
console.log('Data service from init ', DataService.getData('temp2'));
}
init();

感兴趣的.ts文件

import DataService from './common/dataService';
export default async function interest() {
DataService.setData('temp2', 'interest');
console.log('Data service from interest ', DataService.getData('temp1'));
console.log('Data service from interest ', DataService.getData('temp2'));
}
interest();

如果我运行第一个初始化函数,它给出的结果为

Data service from init init
Data service from init null

这是完美的,但是在 init.ts 之后,如果我运行 interest.ts 文件,那么它会给出输出

Data service from interest null
Data service from interest interest

我希望这个兴趣输出为

Data service from interest init
Data service from interest interest

因为 temp1 的值是由 init.ts 设置的。如何在打字稿中进行这种类型的全局内容共享?

在 TS 操场中运行此代码时

链接

您可以看到这按预期工作。 所以我在这里的猜测是,您只是不小心在 2 次单独的运行中运行了它。

最新更新