小程序同步调用(async-await)云函数security.msgSecCheck检查敏感词

小程序过滤关键词,过滤敏感词

异步函数同步调用

以文本内容敏感词检查为例(security.msgSecCheck)演示云函数的使用,以及同步调用函数

需求描述:

小程序中需要对用户发布的内容进行敏感词检查,检查通过继续执行,不通过提示含有敏感词,因为异步流程嵌套太麻烦这里使用同步调用判断函数checkString

1.云函数

// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()

// 云函数入口函数
exports.main = async (event, context) => {
  // const wxContext = cloud.getWXContext();
  // console.log(event)
  // console.log(context)
  

  try {
    console.log(event.content)
    var result = await cloud.openapi.security.msgSecCheck(
      {
        content: event.content,
      }
    );
    console.log(result);
    return result;
  } catch (err){
    console.log(err);
    throw err;
  }
}

2.checkString 调用云函数(common.js文件里)

异步方式

function checkString(content){
  wx.cloud.callFunction({
    name: 'checkString',
    data: {
      content: content,
    }
  }).then(res => {
    console.log(res);
    if (res.result.errCode == 0)
      return true;
    return false;

  }).catch(err => {
    console.error(err);
    return false;
  });
}

同步方式

/**
 * 同步检查是否包含敏感词
 */
async function checkString(content) {
  try {
    var res = await wx.cloud.callFunction({
      name: 'checkString',
      data: {
        content: content,
      }
    });
    if (res.result.errCode == 0)
      return true;
    return false;
  } catch (err) {
    console.log(err);
    return false;
  }
}
module.exports = {
  checkString: checkString
}

3.项目调用

pubcom: async function (e) {
        wx.showLoading({
            title: '加载中',
            mask:true
        })
        
        var that = this
        var content = that.data.comcon
        var formId = e.detail.formId;
        if (!content){
            return
        }
      var isCheck = await common.checkString(content);
      if (!isCheck) {
        wx.showToast({
          title: '含有敏感词',
          image: "/assets/icon/icon-warning.png",
        });
        return
      }
}

执行流程

 

发布了85 篇原创文章 · 获赞 45 · 访问量 95万+

猜你喜欢

转载自blog.csdn.net/flysnownet/article/details/102542675