Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
 Аватар для Tsyklop
5 / 6 / 5
Регистрация: 01.01.2014
Сообщений: 399

Дождаться выполнения AJAX запроса и вернуть значение

03.03.2018, 22:30. Показов 2765. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Делаю расширение для хрома. Мне нужно из моего файла content отправить сообщение на background и получить ответ.

Отправляю из content так:

JavaScript
1
2
3
chrome.runtime.sendMessage({type:'test', method: 'getHtml', data: 'test'}, {}, function (response) {
     console.log(response);
});
Обработчик сообщений в background:

JavaScript
1
2
3
4
5
6
7
8
9
chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
 
        console.log('chrome.runtime.onMessage', request, sender);
 
        if(request&&request.type&&request.method) {
            sendResponse(window[request.type][request.method](request.data));
        }
 
    });
getHtml в background:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
function getHtml (name) {
        // fetch не работает.
        let html = fetch('/html/'+name+'.html').then(function(response) {
            return response.text();
        });
        return html;
 
        // Promise тоже не работает.
        return $.get('/html/'+name+'.html').then(result => {
           console.log(result);
           return result;
        });
    }
В консоль выводятся полученные данные, но в response в content приходит пустой объект.

Что я не так делаю?

Банально этот пример не работает, а хотя это написано в гугле что должно:

JavaScript
1
2
3
4
5
6
7
8
9
function getResult() {
  var q1 = $.get('/html/test.html');
 
  var q2 = q1.then(function (data) {
    return data;
  });
  console.log('ffffffff');
  return q2;
}
По идее сначала должно отработать запрос а потом вывестись консоль. Но происходит наоборот.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.03.2018, 22:30
Ответы с готовыми решениями:

Вернуть данные из ajax запроса
Доброго времени суток, форумчане! Подскажите, пожалуйста как вытащить данные из ajax запроса? executeScalarAjaxRequest: function...

2 условия выполнения Ajax запроса
Как сделать, чтобы один ajax выполнялся и при выборе select и при загрузке страницы. Сейчас делаю тупо 2 запроса $(document).ready...

После выполнения ajax-запроса переменная теряется
Возможно я чего-либо не смыслю в тонкостях работы JS. У меня есть такая функция: const DatabaseHandler = { //... request:...

1
2 / 2 / 2
Регистрация: 29.06.2014
Сообщений: 13
03.03.2018, 22:46
JavaScript
1
window[request.type][request.method](request.data).then(sendResponse);
и "Обработчик сообщений в background" должен возвращать true

если я все правильно понял )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.03.2018, 22:46
Помогаю со студенческими работами здесь

После выполнения AJAX запроса выполнить еще один запрос
В общем, человек регистрируется и сразу логинится после регистрации с помощью AJAX. При это меняется шапка: Привет, юзер! Так же нужно...

Как предотвратить переподключение SignalR-клиента после выполнения ajax-запроса?
Добрый день. Использую SignalR для реалтайм приложения на ASPnet-MVC. В приложении пользователь должен загрузить файл на сервер. ...

Вернуть значение из https запроса
Есть функция вида: var request = (params) => { require('https').request(params, (response) => { let str = ''; ...

вернуть значение SQL запроса в C#
Здравствуйте! как можно получить значение колонки isAdmin? public static bool isAdmin(string Login) { try ...

Вызов ajax запроса после обработки другого ajax запроса
Добрый день. По нажатию на кнопку происходит ajax запрос. Сервер возвращает true или false. Если результат true, то должен выполняться еще...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru