调用XMLHttpRequest封装的getInfo方法时回调仅返回索引无法获取目标对象
问题根因
你定义getInfo函数时,给回调函数传递了两个入参:第一个是你传入的索引resource,第二个才是你需要的数组对应索引的对象data[resource]。但你调用getInfo时传入的回调函数只接收了第一个参数,所以打印出来的就只有索引值。
你自定义的myfunc可以正常返回结果,是因为你定义myfunc时就声明接收了两个参数,所以可以正常拿到索引和对应对象。
修复方案
可以任选一种方案修改:
- 方案1:修改回调函数的参数声明,增加第二个参数接收返回的对象
getInfo(0, (index, data) => { console.log(data); getInfo(2, (index, data) => { console.log(data); getInfo(1, (index, data) => { console.log(data); }); }); });
- 方案2:修改
getInfo内部调用回调的逻辑,仅传递需要的对象
把getInfo内的callback(resource, data[resource]);改为callback(data[resource]);即可,不需要修改现有调用逻辑。
内容的提问来源于stack exchange,提问作者mzaidi
相关产品推荐
相关产品推荐

