vis timeline - items.add 从异步函数调用时中断循环

vis timeline - items.add breaks loop when called from async function

我正在向可视化时间轴添加多个项目: 第一次添加在回调中调用并且工作正常。 我第二次添加来自异步 ajax 请求和 returns 承诺的数据。
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
        }
    }
}

我发现了问题。它与循环无关,而与 id 无关。 我将项目 ID 更改为另一个函数,现在它可以工作了:

 id: "Chat" + i +" " + j,