【未解决】官方大神来看看:cc.loader.load参数是一个远程的json路径的数组

我看了api文档有此介绍:

cc.loader.load([‘a.png’, ‘b.json’], function (errors, results) {
if (errors) {
for (var i = 0; i < errors.length; i++) {
cc.log(‘Error url [’ + errors[i] + ']: ’ + results.getError(errors[i]));
}
}
var aTex = results.getContent(‘a.png’);
var bJsonObj = results.getContent(‘b.json’);
});

现在问题来了,当参数是一个这样的数组时:
[‘https://www.cocos.com/a.json’,'https://www.cocos.com/b.json’],再加载成功后results (是一个LoadingItems对象)也拿到了,可是始终拿不到数据,我试过以下几个方式,都不行:

var aTex = results.getContent(‘https://www.cocos.com/a.json’);
var aTex = results.getContent(‘www.cocos.com/a.json’);
var aTex = results.getContent(‘a.json’);
var aTex = results.getContent(‘a’);

@官方大神来看看

补一张图吧,说明一下这个看不懂得results对象:

看看 results.map 是什么样的呗。

打印一下results看看呢

打印了,上面补了一张图。results.map也是一个对象,没数据。

--------------------------------------我是分割线----------------------------------

我现在使用Promise.all([]);临时解决一下。

额,正常情况下的 map 是没有 proto 属性的,里面除了数据就没有别的了。看看是不是别的地方出了问题呢。

我看一下吧,你的版本是多少?

这个没什么特别之处,就是官方文档的代码,只不过数组中的url是远程的服务器url。

我现在不用数组了,单个加载正常,用Promise.all()临时解决一下。

好的,麻烦了。

我们的这个示例有点问题,应该需要这样:

cc.loader.load(["http://127.0.0.1:5500/HelloWorld.png", "http://127.0.0.1:5500/test.json"], (err, res) => {
   console.log(res.getContent("http://127.0.0.1:5500/HelloWorld.png"));
});

抱歉,这几天忙其他的事情差点忘了。

你确定这样可以吗?我这边调试的结果,好像是拿不到的。因为我这边用的url是我们自己的远程带域名的url。

可以拿到资源,不过results.map在pc web上数据显示不出来,只有web mobile上可以