2017-04-14 35 views
0

我目前正在與MongoDB的一個項目,並在終端我收到這則通知:MongoDB中的承諾是什麼?

「DeprecationWarning:貓鼬:mpromise(貓鼬的默認承諾庫)已被棄用,插上自己的諾言庫,而不是:http://mongoosejs.com/docs/promises.html

我對mongo相當陌生,不知道這些「承諾」是什麼。我也檢查了通知中的鏈接,但仍然無法理解它在說什麼。

如果有人可以請解釋在MongoDB中有什麼「承諾」,以及我應該怎樣處理這種棄用行爲,那會很好。謝謝!

+0

鏈接的文章是真正關心這個很清楚。具體來說,你不明白嗎? –

+0

承諾處理異步操作。它們是尚未提供的值的包裝器。他們不是一個特定於MongoDB的東西,實際上這就是這個信息的意思,他們不贊成這種模式的實現,並且希望你插入一個更復雜的/高性能的實現。海事組織。 [Q](https://github.com/kriskowal/q)和[bluebird](http://bluebirdjs.com)已經設置好了,但是現在每個瀏覽器和Nodejs都提供了基本的Promise實現。只是谷歌的話題,有很多文章。 – Thomas

+0

@ T.J.Crowder我只是不明白什麼是承諾。現在我得到他們類似於回調 – jblew

回答

2

MongoDB中的承諾就像更大的JS生態系統中的承諾一樣。它們是回調函數的一種替代方案,可以逐步有序地執行異步代碼。

作爲您的Mongo鏈接,例如,顯示您可以使用Promise.then()而不是回調函數。

這是some further discussion

這裏有一些其他的承諾的實現:

  1. Bluebird
  2. jQuery
  3. Native ES6/ES2015+ Promises
+1

感謝您的澄清。我很感激! – jblew