开发过程中,一些常用到的代码通常会封装为一些工具类,最近开发微信小程序,在封装的时候遇到了一些问题,做做笔记。
问题描述
封装的方法无法将结果返回,试了官方的success,fail写法和Promise写法都拿不到结果
db-util.js
//success fail写法
function query(dbName, condition) {
db.collection(dbName)
.where(condition)
.get({
success(res) {
return res
},fail(err){
return err
}
})
}
db-util.js
//Promise写法
function query(dbName, condition) {
db.collection(dbName)
.where(condition)
.get()
.then(res=>{
return res
}),catch(err=>{
return err
})
}
问题解决
解决办法:封装时使用
Promise
db-util.js
/**
* 封装数据库CRUD操作
* @date 2019年12月24日
* @author Genius Programmer<[email protected]>
*/
const db = wx.cloud.database();
const _ = db.command;
/**
* 数据库查询封装
* @param {string} 数据库名
* @param {object} 查询条件
*/
function query(dbName, condition) {
return new Promise((resolve,reject)=>{
db.collection(dbName)
.where(condition)
.get({
success(res) {
resolve(res)
},fail(err){
reject(err)
}
})
})
}
//导出方法
module.exports = {
query,
}
index.js
DBUtil.query('customer',{})
.then(res=>{
console.log(res)
})