Как дождаться окончания фонового скрипта, прежде чем вернуться к всплывающему скрипту? - PullRequest
1 голос
/ 28 апреля 2019

Я создал дополнение Chrome, для которого, когда я нажимаю кнопку на панели инструментов, появляется всплывающее сообщение с некоторыми значениями в нем. Всплывающий скрипт вызывает функцию в фоновом скрипте, которая возвращает эти значения, в то же время эта функция запускает другую функцию обратного вызова. Аддон работает нормально, моя проблема в том, что мне нужно вернуть значения из фонового скрипта обратно во всплывающий скрипт после завершения функции обратного вызова, а не во время ее работы.

вот код

popup.js

    document.addEventListener("DOMContentLoaded", function () {
        backGround = chrome.extension.getBackgroundPage();
        var msg = backGround.browserOnClickAxn();      
        insertText (msg);
        }
    );

    function insertText (msg) {
    do stuff
    }

background.js

    function browserOnClickAxn()
    {

    chrome_api_function (
    do stuff
    callback()
    )

    var result = another_function()
    var msg = result
    return msg; 

    }

Что происходит с текущим кодом, так это то, что всплывающее сообщение msg получает свои значения и появляется во время работы callback (). Callback () делает свое дело, он не имеет ничего общего с генерацией значений msg.

Я хочу, чтобы всплывающее сообщение получало свои значения и появлялось только после завершения обратного вызова.

Как мне подойти к этому? Я поставил условное while перед var result , чтобы заставить главную функцию ждать, пока callback () не вернет условие, которое останавливает какое-то время, но весь сценарий останавливается.

Я использую больше обратных вызовов? Я использую API-интерфейс SendMessage для Chrome Я хотел бы решить эту проблему, не усложняя существующий код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...