只是不确定此代码的流程
doStuff()
.then(() => { callback(); })
.catch(err => callback(err))
.then(db.close);
在这种情况下会调用db.close吗?
答案 0 :(得分:2)
是的,它总会被调用,假设callback(err)
本身不会抛出。
此代码几乎相同(稍有不同的错误处理),并且更简洁:
doStuff()
.then(callback, callback)
.then(db.close)
值得一提的另一点是,如果db
是一个类的实例而close()
依赖于this
关键字,那么以这种方式传递它可能会有问题,因为它在自己调用时会失去那个上下文。