我正在使用mongoDB的本地驅動程序。在數據庫中我有大約7個集合,我想創建一個變量來存儲每個集合中的條目數量減去最後一個集合。之後,我想創建另一個變量來存儲最後一個集合的條目,然後我想通過res.render()命令傳遞變量並將其顯示在網頁上。試圖瞭解如何在js中使用Promise
我在這裏遇到的問題是,我很習慣於在這種情況下直接進入窗口的功能的同步執行。
下面的代碼是我想,如果一切都在同步執行的方式。
var count = 0;
db.listCollections().toArray(function(err,collection){
for(i = 1; i < collection.length;i++){
db.collection(collection[i].name).count(function(err,value){
count = count + value;
})
}
var count2 = db.collection(collection[i].name).count(function(err,value){
return value;
})
res.render('index.html',{data1: count, data2: count2})
})
顯然,這並不希望做我想做的事情,所以我試圖用承諾玩耍,但最終被更糊塗了。
我錯過了一個具體的問題?或者你想讓代碼「固定」? – Sonata
看看[this](http://stackoverflow.com/questions/23597059/promise-and-nodejs-mongodb-driver)或者使用承諾,你可以在回調函數中嵌套每個調用,但承諾會讓你很多長遠來看更快樂。 – metame
嗯,我想我想要的代碼「固定」。但獲得某種提示顯然會有所幫助。 – user5232061