Почему не выполняется callback?

217
04 апреля 2018, 10:02
chrome.runtime.onMessage.addListener((request, sender, response) => {
handleExtAction(request, sender, response);
console.log(request);
console.log(sender);
console.log(response);
});
function handleExtAction(request, sender, response) {
switch (request.action) {
    case 'getNotifyAccess':
        chrome.storage.sync.get(['config'], function(result) {
            result = result.config;
            if (result.api_token === undefined || result.api_token === '') return;
            $.get(url + result.api_token + '/access', (data, textStatus, xhr) => {
                console.log(xhr.status);
            }).fail(() => {
                response({
                    success: false,
                    error: 'server not available',
                });
            });
        });
        break;
}
}

Callback response возвращает undefined.

Если его вызвать из

chrome.runtime.onMessage.addListener((request, sender, response) => {
response({success: true, error: ''});

то он сработает.

Также из функции handleExtAction тоже работает.

function handleExtAction(request, sender, response) {
response({success: true, error: ''});

Почему он возвращает undefined при вызове из jquery fail?

Answer 1

Согласно документации вам необходимо вернуть true в теле обработчика сообщения в случае если вы планируете работать асинхронно.

Решение:

chrome.runtime.onMessage.addListener((request, sender, response) => {
  handleExtAction(request, sender, response);
  console.log(request);
  console.log(sender);
  console.log(response);
  return true; // <---
});
...
READ ALSO
Application with Ethereum Smart Contracts [требует правки]

Application with Ethereum Smart Contracts [требует правки]

I need to create ios,android,web application which must interact with Ethereum blockchainApplication will have users

160
Как правильно обработать событие JQUERY

Как правильно обработать событие JQUERY

Имеется div id="ui-datepicker-div", в котором есть таблица и ссылка с class='ui-state-default'Как мне сделать обработку клика по ссылке с class='ui-state-default' именно с текущим...

156
JS валидация логина

JS валидация логина

Есть логин формаЛогин проходит валидацию вот так

132
Как лучше сделать подсветку курсора?

Как лучше сделать подсветку курсора?

Возникла потребность сделать как бы подсветку курсора на кнопкахТо-бишь, чтоб когда провожу им по кнопке, то под курсором был какой-то градиент,...

165