我在vis时间轴中添加了多个项目:
第一次添加在回调内调用,工作正常。
我第二次添加来自异步ajax请求的数据并返回一个promise
getRocketChat().then(print);
问题是现在,循环只在我添加项目时执行一次。当我取消注释项目添加它工作正常。
我也试过timeline.redraw()
,items.update()
等,但没有成功。我完全不知道为什么这不起作用。
function print(channelAndMessages) {
for (let i = 0; i < channelAndMessages.length; i++) {
console.log(channelAndMessages[i]);
for (let j = 0; j < channelAndMessages[i].messages.length; j++) {
console.log("ChannelName " + getChannelName(channelAndMessages[i].messages[j].rid));
let singleMsg = channelAndMessages[i].messages[j];
items.add({
id: "Chat" + singleMsg.id,
group: 'einsatzltr',
content: singleMsg.msg,
start: moment(singleMsg.ts)
});
console.log(singleMsg.msg); //excecuted only once
}
}
}
答案 0 :(得分:0)
我发现了问题。它与循环无关,只与id有关。 我将项目ID更改为另一个函数,现在它可以工作:
id: "Chat" + i +" " + j,