本地调试正常,上传云端测试,发现 result 都是 null。小程序
网上一通搜索,发现大概是这个缘由:api
异步操做的问题。云函数主体代码运行到最尾时就会结束线程,不会等你异步的返回结果。
说明云函数对 async/await 的支持是有问题的。异步
我原来的代码:async
// 云函数入口文件 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 以后果真就行了。测试
云函数其实问题挺多的,此次是本地测试好使,云端测试不行,下次就是云端测试不行,模拟器/真机测试好使。ui
唉,小程序啊小程序。.net