Вызов двух функций с помощью контекстного меню - PullRequest
0 голосов
/ 14 ноября 2018

Вот пункт контекстного меню, который при нажатии должен вызывать две функции одну за другой. Первая функция - toggleTempWhitelistStateOfHighlightedTab () , а вторая - suspendAllTabsInAllWindows (true) . Когда я вызываю только одну функцию, она работает, но мой синтаксис для вызова двух функций неверен. Что-то не так в строке : .

  chrome.contextMenus.create({
    title: chrome.i18n.getMessage('js_context_force_suspend_all_tabs'),
    contexts: allContexts,
    onclick: () => toggleTempWhitelistStateOfHighlightedTab(), suspendAllTabsInAllWindows(true),
  });

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Вы используете JavaScript * * * * * * * * Стрелка * * * * * * * * * * * * * * * * * * * без скобок {} .

Однако в этом случае вы можете иметь только одно выражение справа (оно становится возвращаемым значением).

Если вам нужно иметь несколько операторов , вам нужно использовать скобки / точки с запятой:

() => {toggleTempWhitelistStateOfHighlightedTab(); suspendAllTabsInAllWindows(true)}

Примечание: с логической точки зрения, вероятно, предпочтительнее иметь именованную функцию-обработчик. Это выглядит чище, и краткость не всегда лучший подход.

function suspend_all_tabs_click() {
  toggleTempWhitelistStateOfHighlightedTab();
  suspendAllTabsInAllWindows(true)
}

chrome.contextMenus.create({
    title: chrome.i18n.getMessage('js_context_force_suspend_all_tabs'),
    contexts: allContexts,
    onclick: suspend_all_tabs_click
});
0 голосов
/ 14 ноября 2018

Я думаю, вам не хватает некоторых вещей:

chrome.contextMenus.create({
    title: chrome.i18n.getMessage('js_context_force_suspend_all_tabs'),
    contexts: allContexts,
    onclick: () => { toggleTempWhitelistStateOfHighlightedTab(); suspendAllTabsInAllWindows(true) }
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...