只能从DevTools访问JavaScript映射中的值

只能从DevTools访问JavaScript映射中的值,javascript,arrays,function,multidimensional-array,maps,Javascript,Arrays,Function,Multidimensional Array,Maps,因此,我尝试访问从第三方服务(Twilio)返回的数组中的值,并且在放置 room.participants.forEach(function(participant){ console.log(Array.from(participant.tracks)); }); 在开发工具中,我收到: (2) [Array(2), Array(2)] 0: (2) ["f469c8e5-4f94-4752-b018-af02d32fe448", AudioTrack] 1: (2) ["be6c

因此,我尝试访问从第三方服务(Twilio)返回的数组中的值,并且在放置

room.participants.forEach(function(participant){
    console.log(Array.from(participant.tracks));
});
在开发工具中,我收到:

(2) [Array(2), Array(2)]
0: (2) ["f469c8e5-4f94-4752-b018-af02d32fe448", AudioTrack]
1: (2) ["be6c2aa6-4c7c-4431-a964-a711f000562a", VideoTrack]
length :2
__proto__ : Array(0)
但我的脚本中的相同代码会产生
[]
。这不是时间的问题,因为我可以通过使用

var myKeys = room.participants.keys();
console.log(myKeys); 
var myParticipant = room.participants.get(myKeys.next().value);
console.log(myParticipant);
console.log(myParticipant.audioTracks);
console.log(myParticipant.videoTracks);
但是,只要我尝试通过相同的方法
foo.next().value
访问曲目的值,我就会收到一个空映射,如果我尝试
Array.from()
方法,我就会收到一个空数组。
怎么回事

console.log()
将为您提供正在记录的对象的实时视图,因此如果是时间问题,那么当您查看控制台时,您正在记录的对象将已更新


因此,这种情况下的解决方案在于如何准确地填充数据。

但当我在代码中注销myParticipant时,我可以看到包含我所需数据的.tracks映射。为什么我不能从(myParticipant.tracks.values)调用Array.from并接收空数组以外的内容?myParticipant的日志看起来像
tracks:Map(2){“f469c8e5-4f94-4752-b018-af02d32fe448”=>AudioTrack,“be6c2aa6-4c7c-4431-a964-A71F000562A”=>VideoTrack}

日志(在我的代码中)myParticipant.track看起来像
Map(0){}大小:(…)\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu:Map[[条目]]:数组(2)0:{“f469c8e5-4f94-4752-b018-af02d32fe4448”=>AudioTrack}1:长度:2
你说这不是时间的问题,但是你说如果你在开发工具中记录
房间。参与者
,你就得到了数据。那么你不是在代码有机会运行之后才做日志记录吗?如果是,那你为什么坚持说它与时间无关?因为我很傻。结果是,如果我稍后再调用它,它会被忽略可以。我不明白为什么我可以从脚本生成的日志中“看到”所需的值,但直到以后才能访问它们,但事实就是这样。我接受了你的答案,谢谢!