导出已解决的承诺结果

时间:2019-12-03 13:30:20

标签: node.js module promise

考虑我有一个带有以下课程的a.js

class Connector {
  constructor (url) {
    this.url = url;
    this.conneciton = null;
  }

  async connect() {
    this.connection = await someThidPartyModule.connect(url);
    return this; 
  }
}

// here I would like to do something like
// export default new Connector().connect();

然后通过重新设计的连接方法在b.js,c.js等中使用连接:

import Connector from 'a.js';

Connector.connection.callSomeMethod(); // here connection already exists after that promise resolved

据我所知无法执行此操作,但是可能存在一些黑客或变通方法?

1 个答案:

答案 0 :(得分:0)

因此,经过一些尝试后发现:

  1. 出口Promise并不是一个好主意,因为在每次导入时,如果已经解决,我们也会获得Promise,
  2. 更好地导出类实例,调用connect方法,然后允许在所有其他文件中使用它
  3. 无论如何,可悲的是承诺会上移到主端点文件,在该文件中我们必须进行初始化异步功能,并在内部等待promise解析

还尝试使用静态create方法导出类,但在远端留下了实例,无法将其导出到其他文件。