我正在导入一个具有某些功能的软件包,该函数返回我所请求的凭据的承诺。密钥正在多个文件中使用-因此,我认为我将一个文件中的Promise解析,然后将值导出到所有其他相关文件中。
获取凭证文件:getEmailKey.js
import {getKey} from '@secret.pkg'
export default class KeysService {
constructor() {
this.emailKey = null;
}
get emailKey () {
return this.emailKey || this.fetchEmailKey();
}
async fetchEmailKey() {
const key = await getKey;
this.emailKey = key;
}
使用键:helperFunctions.js
import KeysService from './getEmailKey.js';
export function createEmailLink() {
return `${BASE_URL}?key=${KeysService.emailKey}`
}
使用这种方法,第一次调用KeysService.emailKey时,它将调用this.fetchEmailKey(),但由于this.emailKey尚未设置,因此不会返回任何内容。还有另一种方法,我不需要包装需要键来解决承诺的每个函数吗?