const connect = async () => {
// 連接 mongodb 數(shù)據(jù)庫
const db = await monguaDb()
const collection = db.collection('user')
let b = await collection.find({}).toArray()
cc = b
console.log("111---" , cc)
return b
}
const a = connect()
console.log("2222--------", cc)
如題我想封裝mongo到Model....但發(fā)現(xiàn)一個問題,裡面印沒問題,但是外面呼叫的時候,資料會遺失。 。 。 。 222-------印製的是空
哦,如果放到項目封裝好,印出來的是Promise { <pending> }
怎麼處理才能回傳數(shù)組,還是需要用mongose這些框架了?
業(yè)精于勤,荒于嬉;行成于思,毀于隨。
我使用的是mongoose,蠻好用的,這裡有我寫的幾個demo https://github.com/treeandgra...
https://github.com/treeandgra...
首先我要聲明的是這個問題與框架或函式庫無關,完全是 promise 的問題。
1、並不是資料遺失,而是你的 cc 變數(shù)瞎定義而且根本沒必要。
2、看的出來樓主對 promise 了解不夠,await 返回的本來就是 promise 對象,鍊式調(diào)用一下就可以取到數(shù)據(jù)了。
const connect = async () => {
const db = await monguaDb()
const collection = db.collection('user')
let b = await collection.find({}).toArray()
console.log("111---" , b);
return b; //返回的b是promise對象
}
connect().then((doc) => { //取出b完成后resolve的數(shù)據(jù)
console.log(222---" , doc);
});