Я работаю над плагином для Google Sketchup, который написан с использованием Ruby API. В этом API есть класс WebDialog , который можно использовать для визуализации HTML и перемещения данных между WebDialog и стороной Ruby кода плагина. Я использую этот класс для создания пользовательского интерфейса для моего плагина.
Данные отправляются из WebDialog на сторону Ruby асинхронно. Из-за некачественной документации я изначально не знал об этом, и теперь, когда я попал в свой плагин, он начал создавать некоторые проблемы для меня. В частности: когда выполняется несколько последовательных вызовов от WebDialog на сторону Ruby, выполняется только последний вызов. Итак, мне явно нужно разработать какой-то «мост», который предотвратит потерю вызовов из WebDialog на сторону Ruby - я думаю, что это, по сути, система «цикл обработки событий» или «прокачка сообщений».
Моя проблема в том, что я понятия не имею, как это сделать. Я надеюсь, что кто-то может предоставить мне какой-то ресурс, который излагает структуру для того, как такая система должна работать - какие проверки необходимы, последовательность, в которой они выполняются, и т. Д. Я знаю это может быть чрезвычайно сложной задачей, но мне нужно только что-то базовое: в основном, способ заставить Javascript останавливаться, когда я отправляю запрос в Ruby, не продолжая работу, пока я не получу необходимые данные, и устранить возможные ошибки, которые могут всплыть.
Любая помощь будет принята с благодарностью!