如何将Promise代码转换为异步等待?

时间:2019-06-12 15:36:15

标签: javascript node.js promise async-await

我有一段代码:

  db.dropDb()
    .then(() => {
      console.log('Success.');
    })
    .catch(err => {
      console.error(err);
    });

它可以正常工作。

但是,我被要求将其转换为异步/等待模型。

我当前的实现是这样的:

  (async () => {
    try {
       await db.dropDb();
      console.log('Success!');
    } catch (e) {
      console.log(e);
      process.exit(1)
    }
  })();

看起来像它可以工作,但是应用程序挂起并且在操作完成后不会退出。

我从这里去哪里?

3 个答案:

答案 0 :(得分:-1)

尝试一下:

async function dropDBfunc() {
try {
   await db.dropDb();
  console.log('Success!');
} catch (e) {
  console.log(e);
}
};

答案 1 :(得分:-1)

实际上,我自己稍后在代码中犯了一个错误:我错过了退出功能。 :facepalm:

第二个示例中的

async / await东西很好用。

答案 2 :(得分:-3)

async function myFirstAsyncFunction() {
  try {
    const fulfilledValue = await promise;
  }
  catch (rejectedValue) {
    // …
  }
}