2 回答

TA貢獻1993條經驗 獲得超6個贊
您實例化了該類的一個新實例。這就是它未定義的原因。有幾種方法可以解決這個問題。我建議導出創建的模型并在其他文件中使用該模型。
//model.js
const token = new Tokens();
token.setAccessToken(access_token);
token.setRefreshToken(refresh_token);
export default token;
// scheduler.js
import { test } from './models/model.js'
// Here, the test is going to be the same as declared before.
console.log('xxx',test.getAccessToken())
在這里,您可以看到新實例化的類被導入到scheduler, 中以供使用。
實現此目的的另一種方法是使用單例模式。單例是一種僅包含一個實例的類。使用這種模式,無論您嘗試調用該函數,數據都將是相同的。
export default class TokensSingleton {
this.instance = null;
constructor(){ /* ... */}
static getInstance() {
if(!TokensSingleton.instance) {
TokensSingleton.instance = new TokensSingleton();
}
return TokensSingleton.instance;
}
/* ... */
}
//index.js
const token = TokenSingleton.getInstance();
token.setAccessToken('test');
token.setRefreshToken(refresh_token);
// scheduler.js
import Tokens from './models/tokens.js'
const test = TokenSingleton.getInstance();
console.log('xxx',test.getAccessToken()) // xxx, test
請注意,此代碼未經測試。
添加回答
舉報