调用回调后关闭数据库连接

时间:2017-05-25 08:59:32

标签: javascript asynchronous

只是不确定此代码的流程

doStuff()
  .then(() => { callback(); })
  .catch(err => callback(err))
  .then(db.close);

在这种情况下会调用db.close吗?

1 个答案:

答案 0 :(得分:2)

是的,它总会被调用,假设callback(err)本身不会抛出。

此代码几乎相同(稍有不同的错误处理),并且更简洁:

doStuff()
    .then(callback, callback)
    .then(db.close)

值得一提的另一点是,如果db是一个类的实例而close()依赖于this关键字,那么以这种方式传递它可能会有问题,因为它在自己调用时会失去那个上下文。