Я пытаюсь сделать обходной путь для асинхронного характера функции расширения Chrome, объявив и прослушивая пользовательские события расширения Chrome. До сих пор я не нашел подходящего решения.Объявление и прослушивание пользовательского события Chrome Ext
Таким образом, это структура моего background.js
(с "persistent": false
набором в manifest.json
):
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.query({active: true, currentWindow: true},
function(tabs) {
//Action 1: chrome.tabs.sendMessage(tabs[0].id, ...
//Action 2: chrome.tabs.sendMessage(tabs[0].id, ...
//Action 3: chrome.tabs.create({url: someUrl, ...
}
)
});
Действие 3 должен выполняться только после действий 1 и 2 были завершены. Я думаю, что по завершении своих действий действия 1 и 2 отправляют событие, например Action1CompleteEvent
и Action2CompleteEvent
, и действие 3 прослушивает это событие. Как только оба обнаружены, он выполнит свое действие.
Возможно ли это? Каковы некоторые способы достижения того же эффекта, который люди использовали?
Спасибо за ваше время.