方式1:普通的方式获取
wx.login() --> 获取到 code --> 拿到code 请求后端服务 --> 后端服务器到微信服务器换取 openId --> 返回给前端
方式2:云函数获取
// 云函数入口文件
const cloud = require('wx-server-sdk')
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
return {
event,
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
}
}
wx.cloud.callFunction({
// 要调用的云函数名称
name: 'main',
// 传递给云函数的参数
data: {},
success: res => {},
fail: err => {},
complete: () => {}
})
方式1的时长是 850.738037109375ms
方式2的时长是 2445.85205078125ms
各位大佬,是我用得不对吗
目前云函数启动是毫秒级的,不存在性能比所谓“服务器”差很多的问题,执行耗时主要受逻辑代码本身影响。(在控制台日志中可以查看具体云函数运行耗时)
IDE 模拟器是模拟小程序在微信客户端中的运行,需要进行一些协议转换适配,所以确实会比真实客户端上要慢一些,准确的耗时数据可以在客户端上进行测试。
楼主的代码中看不出数据是怎样测试出来的,正常来说即使是 IDE 模拟器上也不会这么慢,楼主可检查下测试方法,或者提供更多信息我们一起来定位下。
按照楼主的代码,拿到 openid 后就直接返回,在正常 4G/WIFI 网络环境下客户端耗时应该在 200ms 左右。
你好,请问是在IDE还是在微信客户端测试的?
云服务本身来说就是一个js函数,这个函数是通过nodejs执行,云函数跟正常的nodejs程序还有差别,肯定速度会慢很多了
自己的服务器性能肯定好些,