Javascript es2016在类构造函数中处理回调

Javascript es2016在类构造函数中处理回调,javascript,ecmascript-6,Javascript,Ecmascript 6,我正在尝试将以下代码写入es2015类语法: export function initialize(port) { return new Promise((resolve, reject) => { const application = express(); const server = application.listen(port, function listening(error) { if (error) rejec

我正在尝试将以下代码写入es2015类语法:

export function initialize(port) {
    return new Promise((resolve, reject) => {
        const application = express();
        const server = application.listen(port, function listening(error) {
            if (error) reject(error);
            resolve(server);
        });
    });
}
const server = async initialize(port);
es2015:

class Server {
    constructor(port) {
        return new Promise((resolve, reject) => {
            const application = express();
            const server = application.listen(port, function listening(error) {
                if (error) reject(error);
                resolve(server);
            });
        });
    }
}
const server = async new Server(port); // <-- not a good idea!
类服务器{
建造商(港口){
返回新承诺((解决、拒绝)=>{
const application=express();
const server=application.listen(端口、函数侦听)(错误){
如果(错误)拒绝(错误);
解析(服务器);
});
});
}
}

const server=异步新服务器(端口);// 您可以使用单独的
初始化
方法并从实例调用该方法:

class Server {
  constructor(port) {
    this.port = port;
  }

  initialise() {
    return new Promise((resolve, reject) => {
      const application = express();
      const server = application.listen(this.port, function listening(error) {
        if (error) reject(error);
        resolve(server);
      });
    });
  }
}
const server = new Server(port);
server.initialise().then(() => // do some stuff)


您的意思是在
const server=
之后
wait
而不是
async
?“我正在尝试将以下代码写入es2015类语法中”-为什么?那样做没有意义。它甚至不像你注意到的那样工作。
函数
简单得多。你的目标是什么?这样做有什么好处?通过第二次调用
initialise()
,您不可能重复使用
serverInstance
。这避免了在构造函数中创建承诺。当然,我的意思是,这甚至是一个很好的解决方案,但是使用
类服务器
比原始代码有什么好处?