微信小程序本地封装模块返回值无效

文章目录

开发过程中,一些常用到的代码通常会封装为一些工具类,最近开发微信小程序,在封装的时候遇到了一些问题,做做笔记。

问题描述

封装的方法无法将结果返回,试了官方的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)
	})
发布了29 篇原创文章 · 获赞 8 · 访问量 4771

猜你喜欢

转载自blog.csdn.net/qq_40738077/article/details/103684683