我的函数解析了http服务器启动后立即解析的承诺.这是我的代码:
function start() { return new Promise((resolve,reject) { this.server = Http.createServer(app); this.server.listen(port,() => { resolve(); }); }) }
如何将启动功能转换为异步/等待?
解决方法
在函数声明之前包含异步并等待Promise构造函数.虽然请注意,您实际上是在为现有模式添加代码. await将值转换为Promise,尽管Question的代码已经使用了Promise构造函数.
async function start() { let promise = await new Promise((resolve,reject) => { this.server = Http.createServer(app); this.server.listen(port,() => { resolve(); }); }) .catch(err => {throw err}); return promise } start() .then(data => console.log(data)) .catch(err => console.error(err));