[英]Using bluebird Promise to catch all errors at once from many mongoose callback methods
[英]Are all Mongoose Model methods promise based?
我剛剛開始使用 Mongoose,我必須說我有點困惑:在查看模型 API 文檔時,似乎有些方法是基於回調的(例如 deleteOne),有些方法返回一個承諾。
令我驚訝的是,似乎即使是那些沒有說明返回承諾的方法 - 實際上確實返回了一個。 例如,此代碼有效,並且“查詢”獲取預期對象:
const query = await this.model.deleteOne({ _id:id })
即使在文檔中示例是這樣寫的:
Character.deleteOne({ name: 'Eddard Stark' }, function (err) {});
我錯過了什么關於貓鼬的東西嗎?
基本上,模型上的大多數操作都是查詢。 從文檔
Mongoose 查詢不是承諾。 為了方便起見,它們有一個用於 co 和 async/await 的 .then() 函數。 但是,與 promise 不同的是,調用查詢的 .then() 可以多次執行查詢。
因此,您可以通過回調函數或承諾以任何方式使用這些方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.