在云开发中,使用云函数会有很多坑。
1.调用云函数的时候,云函数调试时返回值不是null,但是到了前端拿到的result却是null。
2.调试云函数,本地调试和云端测试/真机测试结果不一样。表现为本地测试正常运行,云端和真机出错。
解决方法:异步操作的问题。云函数主体代码运行到最尾时就会结束线程,不会等你异步的返回结果。
// 云函数的index.js文件中
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
let itemId = event.itemId
try {
var wholeItem = {};
// 这里要写 return await。之前只是写了个await
return await prodRecord.where({
_id: itemId
}).get().then(res => {
wholeItem = res.data[0]
})
}
catch (err) {
console.log(err)
}
finally {
}
}
这个方法有时候可以解决,有时候使用这个解决方法还是不行。还在研究。