2017-09-28 63 views
0

我正在將多個項目添加到vis時間軸中: 第一次添加在回調中調用並且正常工作。 第二次添加來自異步ajax請求的數據並返回一個承諾。
getRocketChat().then(print);
現在的問題是,當我添加項目時,循環只執行一次。當我取消註釋該項目添加它工作正常。 我也嘗試過與timeline.redraw()items.update()等,但沒有成功。我絕對不知道爲什麼這不起作用。vis timeline - items.add在從異步函數調用時打破循環

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

我發現了這個問題。它與循環無關,但與id一樣。 我將項目ID更改爲另一個功能,現在它可以工作:

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