小程序数据库代码简写问题

img


小程序请求数据库这段代码怎么进行封装或者合并?或者有什么好方法简写。望告知

一种方法是将这些方法封装在一个函数中,例如:

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
  })
})