Infobip聊天机器人数据获取报错:Arity错误及变量赋值失败
问题排查与解决方案
1. Arity错误的直接原因
报错里的Arity error - expected: 1 actual: 2明确指向参数数量不匹配问题。看你的代码:
attributeApi.get('return_time', list[8-1].aT);
attributeApi.get()方法仅需接收1个参数(要获取的变量名称),但你这里传了2个参数(变量名+赋值内容),直接触发了参数数量不匹配的报错。
2. 变量赋值失败的关联原因
这个Arity错误会导致代码执行中断,后续的attributeApi.set('total_amount', ...)无法正常运行,直接引发变量赋值失败。另外还有两个潜在风险点:
- 确认
list[8-1](即list[7])是否存在有效数据:如果API返回的列表长度不足8,list[7]会是undefined,访问其属性dT/aT/totalAmount会触发新错误。 - 确认
getavailablity变量是否正确存储了API返回的完整数组:如果attributeApi.get('getavailablity')拿到的不是预期数组,后续属性访问也会失效。
3. 修正后的代码
把错误的get调用改成set(你此处的意图应该是给return_time赋值),同时增加基础的空值判断:
let list = attributeApi.get('getavailablity'); // 先验证数据有效性 if (Array.isArray(list) && list.length > 7) { const targetItem = list[7]; attributeApi.set('departure_time', targetItem.dT); attributeApi.set('return_time', targetItem.aT); // 替换错误的get为set attributeApi.set('total_amount', targetItem.totalAmount); } else { // 处理数据异常,比如记录日志或设置默认值 console.log('API返回数据格式不符合预期'); }
内容的提问来源于stack exchange,提问作者Mohammed Yaseen M
相关产品推荐
相关产品推荐

