这是我正在使用的功能的一部分:
this.instructions
是一个数组。
我故意添加了一些console.log()只是为了向您显示我在this.instructions
数组中寻找的项目存在。
insertOrUpdateI(i, instruction_frame) {
if (i.hasOwnProperty('src_id')) {
let iToUpdateIndex = this.instructions.findIndex(known_i => known_i.src_id == i.src_id);
console.log('i: ',i)
console.log('this.instructions: ',this.instructions);
console.log('iToUpdateIndex: ', iToUpdateIndex);
if (iToUpdateIndex > -1) {
let oldInstruction = this.instructions[iToUpdateIndex];
this.instructions[iToUpdateIndex] = {...i, frame: oldInstruction.frame}; // don't update the frame
this.reconstructMatchState({
fetchFromBack: false,
lastFrame: this.stream.lastCameraFrame,
applyNow: true
}).subscribe();
return
}
}
....
这是我得到的结果:
i:{主题:“纸牌”,玩家ID:6554,纸牌类型:“ Yellow_card”,src_id:1,帧:5077}
this.instructions:[{subject:“ period”,name:“ period_1”,start:5031,frame:5031,src_id:-1}, {subject:“ card”,player_id:6547,card_type:“ yellow_card”,src_id:1,frame:5077}]
iToUpdateInde:-1
但是,我有i.src_id === 1,并且数组上有一个项目的src_id == 1
我想念什么?我会感谢您的帮助!
答案 0 :(得分:0)
为我here's a stackblitz example工作,请尝试再做一次。
答案 1 :(得分:0)
最后,我在这里找到了我的问题的答案: Is console.log async or sync 我的代码没有任何问题,问题可能出在我使用的开发人员工具的版本上。
根据我们使用的浏览器及其版本,console.log()似乎有不同的行为。有时它可能具有异步行为,即使我们没有在其中传递任何回调!