微信小程序云函数 result 为 null

发布于:2023-03-12 ⋅ 阅读:(512) ⋅ 点赞:(0)

本地调试正常,上传云端测试,发现 result 都是 null。

网上一通搜索,发现大概是这个原因:

异步操作的问题。云函数主体代码运行到最尾时就会结束线程,不会等你异步的返回结果。

说明云函数对 async/await 的支持是有问题的。

我原来的代码:

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

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV,
});

// 云函数入口函数
exports.main = async (event) => {
  try {
    const res = await cloud.openapi.security.msgSecCheck({
      content: event.content,
    });
    if (res.errCode === 0) {
      return Promise.resolve();
    }
    return Promise.reject();
  } catch (err) {
    return Promise.reject();
  }
};

修改之后的代码:

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

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV,
});

// 云函数入口函数
exports.main = (event) => cloud.openapi.security.msgSecCheck({
  content: event.content,
});

弃用了 async/await 之后果然就好了。


云函数其实问题挺多的,这次是本地测试好使,云端测试不行,下次就是云端测试不行,模拟器/真机测试好使。

唉,小程序啊小程序。


参考:【小程序云开发】本地调试和云端测试的结果不一致,返回值result为null


网站公告

今日签到

点亮在社区的每一天
去签到