Локальный обратный вызов в Simperium, запускаемый локальным обновлением
У меня проблемы с Симпериумом.
Этот маленький plnkr позволяет одному пользователю создать учетную запись в моем приложении и аутентифицироваться с ним.
После аутентификации вы можете изменить object_to_update
объект в mydata_data
Ведро с парой имя: значение (для этого нажмите кнопку обновления!).
Проблема в том, что при обновлении object_to_update
объект. Я не понимаю почему. Обновление запускается локально (у меня нет других удаленных вещей, делающих вещи на этой странице), но даже локальное его срабатывание всегда вызывает локальный обратный вызов.
Документы для local
сказать:
Этот обратный вызов запускается всякий раз, когда библиотеке необходимо проверить текущее локальное состояние объекта, прежде чем отправлять вам событие уведомления. Это означает, что любые локальные изменения могут быть включены в обновленный объект. В приведенном выше примере вы можете синхронизировать ввод текста из элемента HTML с именем "mytextfield". Если доступно обновление (этот объект был изменен в другом месте), библиотека будет ожидать получения текущего состояния объекта, чтобы она могла включать локальные изменения с удаленными изменениями. Когда вы получаете событие уведомления, вы можете напрямую обновить "mytextfield".
Но обновление не было запущено в другом месте, я запускаю его локально!
Единственный способ, как я вижу, чтобы обновление прошло так, как задумано, - это дублирование кода обновления:
bucket.update ("object_to_update", {on: va});
в локальном обратном вызове, с точно таким же on
а также va
ценности, но какой смысл дублировать это в первую очередь? Должно быть другое объяснение.
1 ответ
Я считаю, что библиотека просто запрашивает у вашего приложения данные, которые оно должно отправить на сервер. Ожидается, что звонки local
всегда будет возвращать самые последние локальные данные для объекта (даже если вы изменили его в другом месте в вашем приложении).