const connect = async () => {
// 连接 mongodb 数据库
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....但發現一個問題,裡面印沒問題,但是外面呼叫的時候,資料會遺失。 。 。 。 222-------印製的是空
哦,如果放到項目封裝好,印出來的是Promise { <pending> }
怎麼處理才能回傳數組,還是需要用mongose這些框架了?
怪我咯2017-06-26 10:51:30
我使用的是mongoose,蠻好用的,這裡有我寫的幾個demo https://github.com/treeandgra...
https://github.com/treeandgra...
漂亮男人2017-06-26 10:51:30
首先我要聲明的是這個問題與框架或函式庫無關,完全是 promise 的問題。
1、並不是資料遺失,而是你的 cc 變數瞎定義而且根本沒必要。
2、看的出來樓主對 promise 了解不夠,await 返回的本來就是 promise 對象,鍊式調用一下就可以取到數據了。
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的数据
console.log(222---" , doc);
});