问题
Unhandled promise rejection Error: cloud.callFunction:fail Error: errCode: -504002 functions execute fail | errMsg: Runtime.UserCodeSyntaxError: SyntaxError: Unexpected token ‘.’
原因
代码中使用了可选链,而云函数的nodejs 12 不支持可选链。而本地调试不报错是因为本地支持可选链。
let guestCards = response.data.photoGroupList?.map((item, index) => {
//...
});
解决办法
去掉可选链
收获
本地调试没问题,一旦不开调试就会出错。
所以我想的是:本地环境和云端环境依赖不同的问题。
后来疯狂搜,结果也没搜到什么,改改这改改那。都没有作用。
然后我新建了一个云函数,发现没有问题,那就不是环境的问题。
然后我开始一行一行的去删除云函数的内容,最后定位到可选链那行
自己去看这个英文:SyntaxError: Unexpected token ‘.’ 语法错误:意外的标记“点”。恍然大悟!
所以以后遇到错误应该先去看返回的错误码和错误msg,不要遇到错误就马上搜,这样会浪费很多的时间。首先知道因为什么导致的错误,才能够搜到准确的答案。