簡體   English   中英

所有貓鼬模型方法都基於承諾嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM