解决一个Promise并存储要在其他多个JS函数中使用的值

时间:2018-07-26 02:56:06

标签: javascript promise async-await

我正在导入一个具有某些功能的软件包,该函数返回我所请求的凭据的承诺。密钥正在多个文件中使用-因此,我认为我将一个文件中的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尚未设置,因此不会返回任何内容。还有另一种方法,我不需要包装需要键来解决承诺的每个函数吗?

0 个答案:

没有答案