1
我可以知道某個特定事件是一個複合操作,即使是特定操作的一部分......在谷歌實時,有沒有辦法知道複合操作是完整的?
tags.addEventListener(gapi.drive.realtime.EventType.VALUES_SET,handleEvent);
function handleEvent(serialized) {
if (serialized.compoundOperationNames.indexOf("LOTS OF TAGS CHANGING") > -1) {
};
...但我怎麼知道該化合物操作完成,而它現在是時候做點什麼了?
我希望能夠做這樣的事情:
if (serialized.lastCompoundOpEvent) {
// Read all the tags and do an expensive bulk operation here
}
您是否嘗試在當前同步塊完成後使用setTimeout來獲取回調?一旦你發現了一個變化,排隊一個定時器,它將處理你的批量操作。如果你確定你的「昂貴的批量操作」是一個瓶頸,那麼等待定時器啓動的額外的幾個毫秒可能是值得的。 –
好吧,他們是一堆單獨的事件,所以不是任何類型的同步塊。任何選擇計時器的時間都是任意的,並且可能在某個時候咬我。另外,即使我在一個複合操作結束後選擇了一段時間......另一個複合操作沒有開始,也沒有保證。 – HeyHeyJC
尋找複合操作結束的目標是什麼?有沒有一種方法可以獨立於實時api來設定目標? (即,您希望在運行昂貴的批處理操作之前等待數據模型中的突變完成)。在您完成處理數據後,使用setTimeout可以讓您有機會延遲任何昂貴的工作。 –