一种方法是将这些方法封装在一个函数中,例如:
function getDataFromFirestore(collectionName, callback) {
db.collection(collectionName).get().then(res => {
wx.stopPullDownRefresh()
callback(res.data)
})
}
// 使用时
getDataFromFirestore('lunbot', (data) => {
this.setData({
swiperlist: data
})
})
getDataFromFirestore('p1tb', (data) => {
this.setData({
pllist: data
})
})
getDataFromFirestore('scl', (data) => {
this.setData({
sclist: data
})
})
另一种方法是使用 Promise.all() 方法来请求多个集合中的数据。并进行合并。
const getDataPromise = (collectionName) => {
return new Promise((resolve) => {
db.collection(collectionName).get().then(res => {
wx.stopPullDownRefresh()
resolve(res.data)
})
})
}
Promise.all([getDataPromise('lunbot'), getDataPromise('p1tb'), getDataPromise('scl')]).then(([swiperlist, pllist, sclist]) => {
this.setData({
swiperlist,
pllist,
sclist
})
})