我的函数解析了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));