У меня есть редактор графов, где у пользователя есть возможность создать узел. Он подключается ко всем выбранным в данный момент узлам. В документе Google это выглядит как узел (его строковая метка) сопоставляется с разделенным запятыми набором связанных ярлыков. Таким образом, чтобы добавить узел, я сначала создать пустой объект картыОбновление только что созданных записей совместной записи
map.set(name, "");
и, затем, отдельно добавить присоединенные элементы
if (map.get(a) == null) throw new Error("node " + a + " does not exist") // fails here
if (map.get(b) == null) throw new Error("node " + b + " does not exist")
map.set(a, a_connections)
map.set(b, b_connections)
Проблема заключается в том, что map.get обнаруживает, что узел не добавляется на карту. Это занимает некоторое время. Кажется, что операции не блокируются даже в одном JS-клиенте (read-my-writes inconsistent). Как я должен работать с этим?
Я заметил это несоответствие при попытке установить два соединения (просто чтобы обнаружить, когда соединения не удались, поскольку может случиться, что соединение потеряно, и все мои изменения не распространяются на сервер, и я хотел, чтобы пользователь знал об этом).
Спасибо, я проверю его. Но я не понимаю, какой конфликт может произойти здесь. Другой клиент использовал только для прослушивания и очистки состояния 'грязный'. Я попробовал 'DocumentStateChangedEvent'. [Доступен только один пример] (https://momeet.world-telephone.com/download/iptv/android-sdk-linux/extras/google/google_play_services/samples/drive/playground/src/com/google/android/ gms/drive/sample/realtimeplayground/PlaygroundDocumentActivity.java) 'mRealtimeDocument.addDocumentSaveStateChangedListener (mSaveStateListener'. –
Но запись журнала' mRealtimeDocument.addDocumentSaveStateChangedListener' не определена. Я могу получить 'doc.getModel(). getRoot()' из документа onFileLoad событие, но у этого документа нет addStateChangeListener. –
Я предполагаю, что это связано с тем, что я использую один и тот же код для обоих клиентов в режиме реального времени. Не возникает такой несогласованности, когда я редактирую график на разных вкладках браузера, когда каждая веб-страница делает только одно подключение к документу. –