Последовательное выполнение дополнения Firefox и разработка дополнения Firefox
Я не знаю, направляюсь ли я в правильном направлении или нет. Пожалуйста, исправьте дизайн аддона, если есть лучший подход. Вот местонахождение github файла main.js.
Я хочу простой основной контроллер, который имеет поток надстройки. Я поражен из-за асинхронного обмена сообщениями между процессом контента и процессом надстройки. Ниже приведена последовательность действий для стратегии последовательного выполнения. Не знаете, как разработать приложение async js?
// Everything needs to be serially executed to make it work
this.startProcessing = function() {
var inputProcessor = new SpannJira.InputProcessor(this.input);
var jiraList = inputProcessor.getJiraList(); // should open a tab, extract data & return jiraList
SpannJira.TabController.openTabs(jiraList); // should open all the required tabs
var jiraProcessor = new SpannJira.JiraProcessor(jiraList)
jiraProcessor.process(); // start processing the tabs opened
}
Я знаю, что связь асинхронная, пятая строка говорит об этом. Так как же сохранить часть контроллера в одной функции, если она асинхронная?
Или мне приходится ломать код контроллера и сохранять соответствующие обратные вызовы всякий раз, когда я получаю асинхронные сообщения (я могу это сделать, но я хочу сохранить классы, выполняющие определенные функции, а не часть контроллера)?
Есть ли какая-нибудь ссылка, которая может рассказать мне, как спроектировать расширение Firefox наилучшим образом, используя последний SDK (который имеет пространство имен, классы и наследование)?