我刚开始使用Mongoose,我必须说我有点困惑:在查看Model API文档时,似乎有些方法是基于回调的(例如deleteOne),有些方法返回了promise。
令我惊讶的是,即使是那些不说要返回承诺的方法实际上也确实返回了一个。例如,此代码有效,并且“查询”获取预期的对象:
const query = await this.model.deleteOne({ _id:id })
即使在文档中示例也是这样写的:
Character.deleteOne({ name: 'Eddard Stark' }, function (err) {});
我想念猫鼬吗?
基本上,对模型的大多数操作都是查询。来自文档
猫鼬查询不是承诺。为了方便起见,它们具有用于co和async / await的.then()函数。但是,与promise不同,调用查询的.then()可以多次执行查询。
因此,您既可以通过回调函数也可以作为promise使用这些方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句