Javascript es2016在类构造函数中处理回调
我正在尝试将以下代码写入es2015类语法: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
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
。这避免了在构造函数中创建承诺。当然,我的意思是,这甚至是一个很好的解决方案,但是使用类服务器
比原始代码有什么好处?