我不确定这段代码的流程
doStuff()
.then(() => { callback(); })
.catch(err => callback(err))
.then(db.close);
在这种情况下,db.close会被调用吗?
我不确定这段代码的流程
doStuff()
.then(() => { callback(); })
.catch(err => callback(err))
.then(db.close);
假设 callback(err)
没有抛出异常,那么它总是会被调用。
以下代码与上述代码几乎等效(略有不同的错误处理),并且更加简洁:
doStuff()
.then(callback, callback)
.then(db.close)
另外值得一提的是,如果db
是一个类的实例,并且close()
通过this
关键字依赖于它,那么以这种方式传递可能会有问题,因为当它自己被调用时,上下文会丢失。