Google Calendar API调用报arrayForEach was called with a non array value问题咨询
报错原因与修复方案
该报错本质是调用遍历方法时传入的不是数组,结合使用官方示例的场景,问题出在Google Calendar接口返回的事件items字段未正常返回数组,要么是不存在该字段,要么返回值为null,按以下步骤操作即可解决:
- 先加日志确认返回结构:在接口请求成功的回调里,先打印完整的返回对象,确认
response.result.items的存在性和实际类型。 - 增加数组容错逻辑:将原示例中直接遍历事件的代码做兼容处理,不存在
items时默认赋值为空数组,从根本上避免类型错误:
// 替换原有直接取items遍历的代码 const events = response.result.items || [] events.forEach(event => { // 保留原有处理事件的逻辑 })
- 排查请求参数过滤规则:官方示例默认携带
timeMin参数过滤当前时间之前的历史事件,如果日历上的现有事件都是已结束的,接口会返回空结果且不会携带items字段。可以先临时移除timeMin参数,或者把该参数值设置为更早的时间测试,确认是否能正常拿到事件数组。 - 校验接口返回状态:可以额外加一层判断,确认接口返回状态码为200且无错误提示后再处理返回数据,避免异常返回结构导致的报错。



内容的提问来源于stack exchange,提问作者Mark Grindcore
相关产品推荐
相关产品推荐

