使用ArcGIS JS API的fetchResources获取资源返回-1,明明存在资源
问题分析与解决
核心问题:未正确处理异步方法
fetchResources() 是异步方法,返回的是Promise对象,直接打印它无法得到实际的资源数据,必须通过await或.then()来获取异步执行后的结果。你的代码仅对item.load()做了异步处理,却忽略了fetchResources()的异步特性。
修正后的代码
const item = new PortalItem({ id: "0890f410a5314b448528f059e3083261", portal }); await item.load(); // 用await获取fetchResources的异步结果 const resourcesResult = await item.fetchResources(); console.log(resourcesResult);
其他排查方向
- 确认当前登录用户对该Portal Item拥有读取资源的权限,私有资源需要对应权限才能被获取
- 检查Portal实例配置,确保指向的环境与你查看资源的Portal一致
- 可尝试传入参数指定查询范围,比如:
item.fetchResources({ start: 0, num: 100 })
(附资源截图:
)
内容的提问来源于stack exchange,提问作者eyal
相关产品推荐
相关产品推荐

